.txt ファイルの各行にプレフィックスとサフィックスを追加する

.txt ファイルの各行にプレフィックスとサフィックスを追加する

.txtファイルの各行にテキストを追加しようとしています。

前に追加したい内容は次のとおりです。I am a

以下を追加したいと思います。 128... [}

各行に。

a.txt内部:

fruit, like
bike, like
dino, like

次のコマンドを実行した後:

$ cat a.txt|sed 'I am a ',' 128... [}'

私が望むように動作しません。私はそれが次のように言うことを本当に願っています:

I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}

答え1

シンプルsed方法:

sed 's/^/I am a /; s/$/ 128... [}/' file.txt
  • ^- 代表する文字列/行の先頭
  • $- 代表する文字列/行の終わり

出力:

I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}

またはAwk次のことができます。

awk '{ print "I am a", $0, "128... [}" }' file.txt

答え2

sed 's/.*/PREFIX&SUFFIX/' infile

特殊文字が含まれてPREFIXいないとします。SUFFIX


\&/(バックスラッシュ、アンパサンド、区切り記号)は、代替項目の右側にあるときに特別ですs。これらの文字の特別な意味は、文字をエスケープして(前にバックスラッシュを追加することによって)抑制することができます。たとえば、実行の前後に1つをA//BC追加すると、次のようになります。XY\Z&&

sed 's/.*/A\/\/BC&XY\\Z\&\&/' infile

答え3

真珠:

$ perl -lne 'print "I am a $_ 128... [}"' file 
I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}

より多くのパール:

$ perl -pe 's/^/I am a /; s/$/ 128... [}/' file 
I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}

そしてより多くのPerlコンテンツ:

$ perl -lpe '$_="I am a $_ 128... [}"' file 
I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}

これらのすべてに対して、次のように-iソースファイルを変更できます。

$ perl -i -lne 'print "I am a $_ 128... [}"' file 
$ perl -i -pe 's/^/I am a /; s/$/ 128... [}/' file 
$ perl -i -lpe '$_="I am a $_ 128... [}"' file 

答え4

sedの代替

sed -e 's/^\(.*\)$/I am a \1 128 [{/

.*行の始まりと終わりの間^のすべての内容を検索して$グループに入れます\( \)。次に、プレフィックス、(最初の)グループ、および\1サフィックスに置き換えます。

関連情報