sedを使用してn番目に表示される単語を置き換える

sedを使用してn番目に表示される単語を置き換える

私はsedを学んでいるので、この場合「line」という単語の2番目の項目を変更しようとしています。だから、次のコマンドを発行します。

(zet:pc:~/text) sed 's/line/LINUX/2' mytextfile
this is line 1
this is line 2
this is line 3
this is line 4
this is line 5

しかし、出力で "sed"が2番目に現れるworld "line"を置き換えないことがわかります。それでは、私がここでミスをしているのでしょうか?

ベストアンサー1

s/../../2各行の2番目の項目を置き換えます。

ファイルを次のように読み込むと一つワイヤー:

GNUの使用sed:

sed -z 's/line/LINUX/2' mytextfile

通常の状況ではsed

tr '\n' '\0' < mytextfile  |  sed 's/line/LINUX/2'  |  tr '\0' '\n'

これにより、誤った結果が生成されます。高いできないこのファイルの場合すでにヌルバイトを含みます。


2行目の最初の項目を置き換えるには、他の答えを参照してください:-)

おすすめ記事