我有我的兩個序列檔案,我有一個來自 file1 的感興趣的行/行的串列。我想提取與 file1 中行號相同的行。該串列只有 1 列數字。
我嘗試在回圈中使用 awk,但我得到的只是一個空檔案作為輸出檔案。我的代碼如下所示:
for i in <listfile>;
do awk -F lnr="$i" 'NR==lnr' <file2> > outputfile
輸出檔案已創建,但只是空的。我之前找不到這個問題,但如果很抱歉浪費你的時間
uj5u.com熱心網友回復:
如果我理解這個問題 - 檔案 1 有一個“行號”串列,并且您希望在檔案 2 中列印這些行:
awk 'FNR==NR{line[$1]=1;next}{if(line[FNR]==1)print FNR, $0}' file1 file2
uj5u.com熱心網友回復:
鑒于輸入...
for i in {a..z}; do echo $i; done > /tmp/list-1
for i in {z..a}; do echo $i; done > /tmp/list-2
每個檔案的當前行將存盤在 FNR 中,因此您可以使用它。
$ awk -v a=4 -v b=9 'FNR >= a && FNR <= b { print FILENAME, NR, FNR, $0 }' /tmp/list-*
示例輸出:
/tmp/list-1 4 4 d
/tmp/list-1 5 5 e
/tmp/list-1 6 6 f
/tmp/list-1 7 7 g
/tmp/list-1 8 8 h
/tmp/list-1 9 9 i
/tmp/list-2 30 4 w
/tmp/list-2 31 5 v
/tmp/list-2 32 6 u
/tmp/list-2 33 7 t
/tmp/list-2 34 8 s
/tmp/list-2 35 9 r
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/355616.html
