Linux‎ > ‎

Linux - ファイル編集処理サンプル

改行文字を「\\n」という3文字の文字列に置換

data.txt
123
789
abc
xyz

パターン1
sed ':loop; N; $! b loop; s/\n/\\\\n/g' data.txt
実行結果
123\\n789\\nabc\\nxyz

パターン2
awk -F\n -v ORS='\\\\n' '{print}' data.txt
実行結果
123\\n789\\nabc\\nxyz\\n

パターン3
awk '{printf("%s\\\\n", $0)}' data.txt
実行結果
123\\n789\\nabc\\nxyz\\n

3パターンとも、文字のある最終行に改行があっても無くても、結果(行末の「\\\n」の有無)は変化しない。


ファイル内の日時文字列「yyyy/MM/dd hh:mm:ss」をすべて削除

sed -e "s|20[0-9][0-9]/[0-9][0-9]/[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]||g" ${file} > edit/${file}

ディレクトリ内のファイルすべてで、ファイル内の日時文字列「yyyy/MM/dd hh:mm:ss」をすべて削除

for file in `ls .`; do
	sed -e "s|20[0-9][0-9]/[0-9][0-9]/[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]||g" ${file} > edit/${file}
done
※更新日時・出力日時等を除外して比較したいときなどに


2013/01/12