2

Linux でシェル スクリプトを使用する (bash または csh)。特定のテキスト パターンに一致するすべての行を検索し、各行について (アプリケーションに応じて) テキストを次の行の先頭または末尾に追加したいと考えています。

たとえば、次のような行を含むファイルの場合:

HEADER 1
 12345

HEADER 2
 12345

HEADER 1
 12345

HEADER 2
 12345

「HEADER 1」を検索していて、テキスト「ABCDE」を追加したい場合、出力は次のようになります。

HEADER 1
 12345 ABCDE

HEADER 2
 12345

HEADER 1
 12345 ABCDE

HEADER 2
 12345

12345 の前に ABCDE が必要な場合もあります。

この目的での sed の使用法を理解しようとしてきましたが、窮屈に感じます。任意のポインタをいただければ幸いです。

4

3 に答える 3

4

このコマンドを試してください:

sed '/HEADER 1/{n;s/$/ ABCDE/}' input.txt

これはロジックです:

for each line in 'input.txt'    
    if line matches /HEADER 1/
        read next line
        append string ' ABCDE'
    endif    
endfor
于 2013-08-20T00:24:47.847 に答える
0

If you're confused on the general text-piping linux applications, I would recommend going through this exercise on the Learn Linux the Hard Way course. Should take 4-5 minutes and help quite a bit.

于 2013-08-20T00:22:13.833 に答える