FreeBSD初心者運用日記 このページをアンテナに追加

2017-11-05

[]特定日付のunixtimeを取得する方法 10:51 特定日付のunixtimeを取得する方法 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - 特定日付のunixtimeを取得する方法 - FreeBSD初心者運用日記 特定日付のunixtimeを取得する方法 - FreeBSD初心者運用日記 のブックマークコメント

debian

date +%s --date "2017-10-01 00:00:00"

mac

date -j -f "%Y-%m-%d %H:%M:%S" "2017-09-01 00:00:00" "+%s"

同じbashでも書き方がこのように違う。

2011-12-05

[]文字列の先頭を大文字で出力したい 21:17 文字列の先頭を大文字で出力したい - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - 文字列の先頭を大文字で出力したい - FreeBSD初心者運用日記 文字列の先頭を大文字で出力したい - FreeBSD初心者運用日記 のブックマークコメント

以下のようにする。

$ echo hello | awk '{print toupper(substr($1,1,1))substr($1,2)}'

2011-06-21

[]カンマ区切りの変数をforループで処理するには 00:45 カンマ区切りの変数をforループで処理するには - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - カンマ区切りの変数をforループで処理するには - FreeBSD初心者運用日記 カンマ区切りの変数をforループで処理するには - FreeBSD初心者運用日記 のブックマークコメント

以下のようにする

#!/bin/sh
IFS=,
hoge="a,b,c,d"
for m in $hoge
do
    echo "m=$m"
done

2011-04-26

[]htmlballスクリプト 00:07 htmlballスクリプト - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - htmlballスクリプト - FreeBSD初心者運用日記 htmlballスクリプト - FreeBSD初心者運用日記 のブックマークコメント

圧縮の方法

./htmlball.sh -c -t {ターゲットディレクトリ}

htmlファイルは圧縮できません

解凍の方法

まず、ブラウザでページを開き、ctrl+aで全文コピーして、新規ファイルにペーストする。

その後、以下のコマンド実行で解凍

./htmlball.sh -c -t {ターゲットファイル}


#!/bin/sh

#
# usage
#

usage() {
	echo >&2 "usage: ./htmlball.sh -[c|x] -t target_file"
	exit
}


#
# create_archive
#

create_archive() {
	echo "<html>"
	echo "<head>"
	echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=euc-jp\">"
	echo "</head>"
	echo "<body>"
	echo "<pre>"
	cd $target_file
	for file in `find . -type f`
	do
		echo [$file]
		cat $file | sed -e 's/</\&lt;/g' -e 's/>/\&gt;/g'
	done
	echo "</pre>"
	echo "</body>"
	echo "</html>"
}


#
# extract_archive
#

extract_archive() {
	num=`grep -c "^\[.*\]" $target_file`
	num=`expr $num - 2`
	csplit -s -f output_htmlball. $target_file '/^\[.*\]/' "{$num}"
	for split_file in `find . -type f -name output_htmlball\* -maxdepth 1`
	do
		file_path_name=`head -1 $split_file | sed -e 's/\[//' -e 's/\]//g'`
		dir_name=`dirname $file_path_name`
		mkdir -p $dir_name
		sed 1d $split_file > $file_path_name
	done
	rm output_htmlball.*
}


#
# get param
#

target_file=""
create_flg=0
extract_flg=0
while getopts cxt: option
do
	case $option in 
		"t")
			target_file=$OPTARG
			;;
		"c")
			create_flg=1
			;;
		"x")
			extract_flg=1
			;;
	esac
done

if [ "$target_file" = "" -o $create_flg -eq 0 -a $extract_flg -eq 0 ]; then
	usage
else
	if [ ! -e $target_file ]; then
		echo "$target_file is not exist."
		exit
	fi
fi


#
# main proc
#

if [ $create_flg -eq 1 ]; then
	create_archive
elif [ $extract_flg -eq 1 ]; then
	extract_archive
else
	echo "parameter is invalid."
fi

2011-01-25

[]awkで、ファイルの列を配列に格納する 00:03 awkで、ファイルの列を配列に格納する - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - awkで、ファイルの列を配列に格納する - FreeBSD初心者運用日記 awkで、ファイルの列を配列に格納する - FreeBSD初心者運用日記 のブックマークコメント

以下のようなファイルがあるものとする。

$ cat hoge.dat 
111,222,333
aaa,bbb,ccc

このファイルを以下のように加工したい。

1 : 111
1 : 222
1 : 333
2 : aaa
2 : bbb
2 : ccc

awkでは以下のようにする。

$ awk '{num = split($0, arr, ","); for (i = 1; i <= num; i++) {print FNR,":", arr[i]}}' hoge.dat