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}'