2014年12月4日木曜日

[Tips] 特定行の複製(sed)

前回に引き続き、sedの便利な機能を覚えたので忘備録。
やれることは、
特定の行をコピー&置換して、貼り付けです。

では、続きは

概要:

特定の行をコピー&置換

出来ること:

もともとのTXTファイル中にある
1行をコピーして、コピーした後に文字列を置換する。

コマンド:


 sed -e '/検索文字列/{ h; p; s/置換前文字列/置換後文字列/; }'

 コマンドの説明
  /検索文字列/    :「検索文字列」の行に探す。マッチしたら{}内を実行。
  h;         :マッチした行をホールドスペースに格納
  p;         :ホールドスペースを出力
  s/置換前/置換後/;   :パタンスペースを置換して出力

 これにより、特定行のコピー&置換ができます。

実行例:

0. 入力ファイル
 例として使用したファイルは以下です。

% cat -n file2
     1 #####################
     2 # Date: 2014.12.xx
     3 # Auth: Men in Black
     4 #####################
     5
     6 AAAA
     7
     8 BBBB
     9
    10 CCCC
    11
    12
    13 exit
    14  


1. 実行
 下の実行例では、入力ファイル中の「CCCC」の行を複製して、
「source ./SCRIPT-5」に置換してます。

% cat file2 | sed -e '/CCCC/{ h; p; s/CCCC/source .\/SCRIPT-5/; }' | cat -n
     1 #####################
     2 # Date: 2014.12.xx
     3 # Auth: Men in Black
     4 #####################
     5
     6 AAAA
     7
     8 BBBB
     9
    10 CCCC
    11 source ./SCRIPT-5
    12
    13
    14 exit
    15  

--
以上
おしまい。

0 件のコメント:

コメントを投稿