2017-03-15 16 views
-1

私はこのファイルを持っている:Sed、awk、またはtrを使って、特定の文字の後に改行を追加する方法は?

lol.txt:hungrylol2.txt:hungry 
lol3.txt:hungry 
lol4.txt:hungry 
lol5.txt:hungrylol6.txt:hungry 

をそして、私はこの1つにで有効にしたいと思います:

lol.txt:hungry 
lol2.txt:hungry 
lol3.txt:hungry 
lol4.txt:hungry 
lol5.txt:hungry 
lol6.txt:hungry 

私はすでに、SED TRとawkを用いて調査が、実行するconvienient方法を見つけることができませんでしたそれ。私は世界的に空腹、新しい行の文字列のhungrylolを代入し、大爆笑して、INPUT_FILEの行を印刷しています

awk '{gsub(/hungrylol/,"hungry\nlol");print}' Input_file 

はあなたに

+4

特定の文字は何ですか? _After_ a 'y'、またはそれ以前には' l'ですか?質問を直接更新して明確にしてください。失敗したソリューションの試行を表示すると役立ちます。 – mklement0

答えて

0

hungryは、1つの文字が続いている

sed 's/\(hungry\)\(.\)/\1\n\2/' file 

、改行や捕獲文字で出力することを。

0

1がなかった場合だけ、「空腹」の後に新しい行を追加します。

$ sed -r 's/(hungry)([^\n])/\1\n\2/g' file 
lol.txt:hungry 
lol2.txt:hungry 
lol3.txt:hungry 
lol4.txt:hungry 
lol5.txt:hungry 
lol6.txt:hungry 

をこれは新しい行でない文字が続くhungryと一致します。これが起こると、それはhungry +新しい行+それをキャプチャした文字に置き換えます。 sedを使用してBREで

関連する問題