Sed のページ



このwebでは、sed,awk,tr,cat などを使い1行コマンドで動く 優れものを集めているみた。

文法

ja1nku なりの解釈のため利用注意 順次更新中
sed
- option
startline , endline
' sentence '

用法

sed '/^$/d' file 空白行の削除 
sed 10,\$d 001.txt 10,$(行末)まで削除する
sed -n 3,10p file file の 3-10行だけ表示する
sed -n '/だろう/p' file だろう を 含む行のみ表示する
sed -n '/^[129な]/p' file 1,2,9,な を行頭の1文字目の行のみ表示
sed -e 's/$/< BR>/g' 001.txt > temp.html html用のtxtファイルの行末尾に< BR>をつける
sed -e ’s/gnu/GNU/g’ file1 > file_out 全ての gnu -> GNU に変更し file_out に書き出す
43gnuonthe thin gnu is OK => 43GNUonthe thin GNU is OK
sed -e 's/ab/Ab/' file 行の頭から最初に出たabのみABに変更する
12ab34abc => 12AB34abc
sed -e ‘y/abc/ABC/‘ file1 > file_out a ->A , b ->B , c ->C に変更し file_out に書き出す

cat -n ### 行番号フィールドをつけて表示
nl file でも行番号は表示できる
cat -n file1 > file2 ## file1のデータに行番号フィールドを追加したファイルfile2を作る



この行番号フィールドつきのデータをメール本文などに貼り付けてあげると
ソースファイルだけに戻すのがコマンドでできるがなかなか手強い

まず下記のサンプルデータを見て欲しい。

[data]--------------------
name code ID from
a 1234 7758 Kobe
b 2345 0045 Gifu
c 2343 0045 Kanagawa
d 2356 0235 Gunma
e 1232 0056 Saitama

行番号付け > cat -n data > datan1
[datan1]--------------------
1 a 1234 7758 Kobe
2 b 2345 0045 Gifu
3 c 2343 0045 Kanagawa
4 d 2356 0235 Gunma
5 e 1232 0056 Saitama

復元 >cut -f 2- datan1 > data1
> diff data data1

元データと一致が確認できる。

行番号付け > cat data | awk '{print NR,"::",$0}' > datan2
[datan2]--------------------
1 :: a 1234 7758 Kobe
2 :: b 2345 0045 Gifu
3 :: c 2343 0045 Kanagawa
4 :: d 2356 0235 Gunma
5 :: e 1232 0056 Saitama

復元 % awk '{print $3,$4,$5,$6}' datan2
ls -laS | awk '{print NR, $1, $5, $9}'



home