入力ファイルは次のとおりです
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
- 変更されたファイルをディスクに書き戻して終了します。