goo blog サービス終了のお知らせ 
goo

sed 範囲指定の削除

先頭からAAAまで消したいとき
sed -i "1,/AAA/d" ${ファイル}

BBBから最後まで消したいとき
sed -i "/BBB/,$d" ${ファイル}

動かん

なんで・・・

sed -i "/BBB/,$ d" ${ファイル}
$とdの間にスペース入れたら動いた・・・

はまった。
コメント ( 0 )

awk システム変数

awk システム変数

ARGV
 コマンドライン引数の配列

ENVIRON
 環境変数の配列


awk 'BEGIN{
 for (env in ENVIRON)
  print env "=" ENVIRON[env]
}

こんな感じか
コメント ( 0 )

awk 独自処理ステータス

awkで独自終了ステータスを捕まえたい。

awk '{if($2=="XX") exit 1}' file
if( $status == 0 ) then
 exit 1しなかったときの処理
endif
コメント ( 0 )

awk 動的な変数を正規表現にセットさせる

検索対象文字列が決まってるときは、

awk '$1 ~ /検索文字列/' ファイル名

でできたんだけど、
検索文字列が動的だったときのやり方が
よくわからんかったけど、

awk '$1 ~ /'"$検索文字列変数"'/' ファイル名

で実現可能。

さらに、

awk '$1 ~ /'"${検索文字列変数:-*}"'/' ファイル名

なんて、こともできる。
コメント ( 1 )

sed 複数行を一行に置換

ファイルの中身が以下のようになっている
-----------------------
1111111111
2222222222
abc
3333333333
4444444444
5555555555
jhi
4444444444
5555555555
6666666666
-----------------------

で、

abcからjhiの間までを
3333333333
に置換したい。


sed "/abc/,/jhi/c¥(¥がいる)
3" ${ファイル名}

ってやれば、

-----------------------
1111111111
2222222222
3333333333
4444444444
5555555555
4444444444
5555555555
6666666666
-----------------------


なるほどね


cのほかに、
a(追加)パターンスペースのカレント行の後ろに指定のテキストを入れる
i(挿入)パターンスペースのカレント行の前に指定のテキストを入れる
コメント ( 0 )
« 前ページ