Linuxの各テキスト行にbalise [img] [/img]を追加するスクリプトは何ですか? [コピー]

Linuxの各テキスト行にbalise [img] [/img]を追加するスクリプトは何ですか? [コピー]

[img]Webホストに画像ファイルをアップロードするスクリプトがあり、すべてのリンク(1行に1つのリンク)を含むファイルがあり、各リンクの先頭と末尾に追加したいと思いました[/img]

答え1

[img]ファイルの各行の先頭と末尾にのみ追加したい場合は、次のことが[/img]できますawk

awk '{ print "[img]" $0 "[/img]" }' infile >outfile

または、

awk '{ printf("[img]%s[/img]\n", $0) }' infile >outfile

答え2

1つの方法は、ストリームエディタsedを使用することです。

sed -e 's/^/[img]/' -e 's!$![/img]!' < input > output

ここでは、2番目の検索の区切り文字を変更し、代替テキストのスラッシュをエスケープする必要がないように/from toを置き換えました。!GNU sedは次のオプションを使用して内部編集を許可します-i

sed -i -e 's/^/[img]/' -e 's!$![/img]!' input

または、次のコマンドを使用してファイルを編集できますed

ed -s input <<< $'1,$s/^/[img]/\n1,$s!$![/img]!\nw\nq'

関連情報