私はラインでこのMYFILEを持って満たされた後にのみ交換してくださいSEDファイル内の最初の「cat」がファイル内で満たされた後で置き換えを行いたい場合は、条件が
dog
snake
dog
cat
lion
snake
python
cat
lion
cat
lion
どうすればいいですか? 最初の「cat」という行が先験的にわからないことに注意してください。私は最初の猫を見つけ、その後、
私はラインでこのMYFILEを持って満たされた後にのみ交換してくださいSEDファイル内の最初の「cat」がファイル内で満たされた後で置き換えを行いたい場合は、条件が
dog
snake
dog
cat
lion
snake
python
cat
lion
cat
lion
どうすればいいですか? 最初の「cat」という行が先験的にわからないことに注意してください。私は最初の猫を見つけ、その後、
使用range addressにそこからsedを適用する必要があります。
sed '/cat/,$s/dog/lion/' a.txt
この場合は範囲がcat
の最初の発生時に開始され、入力の終わりで終了し、 /cat/,$
で表される。
翻訳sed
ソリューション説明
$ awk '/cat/,0{sub("dog","lion")}1' file
awk
への:猫から
/cat/,0
は、ファイルの最後に
sub("dog","lion")
ライオンと犬を置き換える
1
印刷
前のラインがcat
ある場合にのみ、dog
ためlion
に置き換えて処理するための追加オプションがあります。たとえば
sed "/cat/{N;s/dog/lion/;}"
、あなたのデータファイルがfile.txt
として保存して:
$ sed "/cat/{N;s/dog/lion/;}" file.txt
dog
snake
dog
cat
lion
snake
python
cat
lion
cat
lion