ファイルの最終行32にユーザー名を追加する必要がある場合、どうすればよいですか?
Googleでsed
を使用して行の先頭にテキストを追加する方法を見つけることはできますが、可能であれば、末尾または途中にテキストを追加する方法がわかりません。
テキストを行末($
) このような:
sed -e '32s/$/your_text/' file
行の中央にテキストを挿入するには、行構造に関するいくつかの情報が役立ちます。
試してください:
sed '32s,$,SOMETHING TO ADD,' FILE
awk
の使用:
awk -v username='some username' -v line=32 'NR == line { $0 = $0 username } 1' file
ユーザー名を行の真ん中に挿入するには、ファイル内の行がどのように見えるかについてもっと知る必要があります。
ユーザー名と行が変数の場合:
awk -v username="$username" -v line="$line" 'NR == line { $0 = $0 username } 1' file
ユーザー名の前にスペースを挿入する場合:
awk -v username="$username" -v line="$line" 'NR == line { $0 = $0 " " username } 1' file
ed
の使用:
$ seq 100 > 100file
$ username=jeff
$ ed -s 100file <<< $'32s/$/'"$username"$'/\nw\nq'
$ sed -n 28,34p 100file
28
29
30
31
32jeff
33
34
末尾の/
置換文字列の場合、デフォルトの印刷動作が抑制されます。