行1の先頭と末尾に特定の文字列を追加します。

行1の先頭と末尾に特定の文字列を追加します。

入力ファイルは次のとおりです

H1 O1 C1 H2 H3 C2 H4 H5 O2 C3 H6 H7 C4 H8 H9 O3 C5 H10 H11 C6 H12 ......

次の出力ファイルが欲しい

z(A) H1 O1 C1 H2 H3 C2 H4 H5 O2 C3 H6 H7 C4 H8 H9 O3 C5 H10 H11 C6 H12 ...... OW HW1 HW2

行の先頭には「z(A)」が含まれ、行の先頭には「OW HW1 HW2」が含まれています。

答え1

sed -e '1s/^/z(A) /' -e '1s/$/ OW HW1 HW2/' < input > output

1最初の行、s置換の行、^行の始まり、$行の終わりです。

答え2

awk 'NR==1{print "z(A) " $0 " OW HW1 HW2"; next}1'

または

awk 'NR==1{printf "z(A) %s OW HW1 HW2\n", $0; next}1'

または

awk 'NR==1{$0="z(A) " $0 " OW HW1 HW2"}1'

答え3

同じファイルを保持するには、以下を試してください。

printf '%s' 'Z(A) ' "$(<infile)" 'OW HW1 HW2' >infile

答え4

スクリプト可能なエディタを使用することもできますed

printf '%s\n' '1s/^/z(A) /' '1s/$/ OW HW1 HW2/' 'wq' | ed -s filename

これにより、改行で区切られた3つのコマンドが次のように印刷され、指定されたed内容を自動的に編集するように求められますfilename

  • 1s/^/z(A) /-sed回答に示すように、1行目の行の先頭をtextに置き換えますz(A)
  • 1s/$/ OW HW1 HW2/-sed回答に示すように、1行目から行末をtextに置き換えますOW HW1 HW2
  • wq- 変更されたファイルをディスクに書き戻して終了します。

関連情報