次の内容を含む products.txt ファイルがあります。
ID Name
w01 Whipped cream
c01 Cocoa Powder
s01 Jaggery
e01 Egg
f05 Flour
xxxxxxx
xxxxxxxxxxx
xxxxxxxxxxx
s01 Jaggery
e01 Egg
f05 Flour
xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
s01 Jaggery
e01 Egg
f05 Flour
xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
次のテキストを置き換える必要があります。
s01 Jaggery
e01 Egg
そして -
something
else
行の先頭と途中のタブを確認してください。
awkまたはsedを使用して上記の問題の解決策を見つけるのを助けてくれてありがとう。
ありがとうございます!
ベストアンサー1
sedを使用すると、N
コマンドを使用して行をリンクし、複数の行を操作できます(例:sを使用して検索して置換するなど)。式は\t
タブと\n
改行文字を使用します(行をN
。
例:
sed -e'/^\ts01\tJaggery/N;s/\ts01\tJaggery\n\t\te01\tEgg/\t\tsomething\n\telse/'
上記では、s01の前に1つのタブ文字、s01とJaggeryの間に1つのタブ文字、e01の前に2つのタブ文字、e01とEggの間に1つのタブ文字があるとします。このコマンドは、sedにregexpに一致する行でのみ機能し、その^\ts01\tJaggery
行N
を次の行()に関連付けてから、などのs
タブや改行文字を含む置換操作()を実行するように指示します。\t
\n