32行目でファイルの末尾にユーザー名を追加する必要がある場合はどうすればよいですか?
行の先頭にテキストを追加する方法はGoogleで見つけることができますが、sed
末尾または中間(可能であれば)に追加する方法はわかりません。
答え1
次のように行末($
)をテキストに置き換えることができます。
sed -e '32s/$/your_text/' file
行の途中にテキストを挿入するには、行構造に関するいくつかの情報が役に立ちます。
答え2
努力する:
sed '32s,$,SOMETHING TO ADD,' FILE
答え3
使用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
答え4
使用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
末尾の文字列を置き換えると、デフォルトの/
印刷動作が抑制されます。