制御ファイルから番号を読み取り、データファイルから一致する行番号を抽出します。

制御ファイルから番号を読み取り、データファイルから一致する行番号を抽出します。

制御ファイル(cntl.txt)があります。

2
3
5

データファイル-data.txt

red
blue
yellow
green
violet
orange

制御ファイルから一致する行を読み取る必要があります。ここで予想される出力は次のとおりです。

blue
yellow 
violet

ベストアンサー1

非常に非効率的なソリューションの例:

for i in $(<control.txt); do awk -v c=$i 'NR~c{ print $0 }' data.txt; done;

また、今夜学んだ良い解決策を報告します。

awk 'FNR==NR{ z[$0]++;next }; FNR in z' control.txt data.txt

おすすめ記事