ファイルの後半ではなく、「指定されたパラメータ内」行にテキスト文字列をリダイレクトできますか?またはコマンド/および/または引数、サブシェルの組み合わせ(リダイレクトによって不可能な場合)。
答え1
GNUの使用awk
:
text_string='some arbitrary
text'
line_number=12
file=/some/file
STRING="$text_string" gawk -i /usr/share/awk/inplace.awk -v n="$line_number" -e '
NR == n {print ENVIRON["STRING"]}
{print}' -E /dev/null "$file"
perl
同じ
perl -spi -e '$_ = "$string\n$_" if $. == $n
' -- -string="$text_string" -n="$line_number" -- "$file"
ファイルをその場で編集します(効果的に編集されたコピーに置き換えます)。
gawkバリアントはというファイルでは機能しません。現在のディレクトリから呼び出されたファイルを-
編集する代わりに。-
./-
返品、使用しないでください-i inplace
現在の作業ディレクトリから最初に拡張機能をgawk
ロードしようとすると、誰かがそのディレクトリにマルウェアを植えた可能性があります。システムに付属の拡張プログラムのパスは異なる場合があります。出力を参照してください。inplace
inplace
inplace.awk
inplace
gawk
gawk 'BEGIN{print ENVIRON["AWKPATH"]}'