bashスクリプトを使用してファイル内の特定の場所のテキストを別のファイルのテキストに置き換えるにはどうすればよいですか?

bashスクリプトを使用してファイル内の特定の場所のテキストを別のファイルのテキストに置き換えるにはどうすればよいですか?

テキストファイルがあるとしましょう。変更するファイル.txt:

3.141592       pi
6.626068       planck

# Like this and like that and like this
..1     kd6-officer kd6-officer
us..0 kd6-3.7
us00..0 kd6-3.8
us00..0 kd6-3.9
us00..0 kd6-3.1

2番目のファイルもあります。サブファイル.txt:

subtext

2番目の列の2行目の単語を変更したいです。変更するファイル.txtこの言葉はサブファイル.txt;この言葉はサブファイル.txt必ずしもそうではありませんsubtext変更するファイル.txtいつもそうではありませんplanck。両方のファイルの両方の単語が次のようになると仮定するのが最善です。いつもまったく違う言葉です。

ベストアンサー1

行2が終わる前に空白以外の文字を変更するには、次のようにします。

sed -i'' -e '2{s/[^[:blank:]]*$/'"$(cat subfile.txt)"'/;}' filetobechanged.txt

この-i''オプションは、ファイルを所定の位置(GNU / BSD sed)で編集します。の単語に文字をsubfile.txt含めることはできません/。または、/コマンド内の単語に存在しない文字(@または,)に置き換える必要があります。

おすすめ記事