行番号で元のファイルの行を別のファイルに置き換える

行番号で元のファイルの行を別のファイルに置き換える

オリジナル:

yes
no
approved
declined

2番目の段落

1111 1
333 4

14元のテキストで置き換えたい行番号です。

出力:

1111
no
approved
333

この問題を処理する方法

ベストアンサー1

短いアッ方法:

awk 'NR==FNR{ a[$2]=$1; next }FNR in a{ $0=a[FNR] }1' file2 file1
  • a[$2]=$1- 2番目のフィールド値を配列インデックスとして$1使用して最初のフィールド値をキャプチャする(最初の入力ファイルを処理するとき)$2afile2
  • $0=a[FNR]- 行全体を現在のレコード番号の値に置き換えますFNR(処理中file1)。

出力:

1111
no
approved
333

おすすめ記事