我有一个包含文本文件的文件夹。我需要根据另一个文件input.txt从该文件夹的文件中提取特定行。我尝试了以下代码。但它不起作用。
awk '
NR==FNR{
if(NF>1)f=$3
else A[f,$1]
next
}
(FILENAME,$3) in A {
print > ( todir "/" FILENAME )
}
' todir=/home/alan/Desktop/output FS=\* /home/alan/Desktop/input.txt FS=" " *
file1
PHE .0 10 .0 0
ASP 59.8 11 59.8 0
LEU 66.8 15 66.8 0
ARG 21.0 16 21.0 0
file2
SER 57.9 43 57.9 0
PHE 2.4 44 2.4 0
GLN 86.1 49 83.2 2.9
THR 33.2 50 33.2 0
SER 10.2 51 .9 9.3
input.txt
*file1
10
16
*file2
43
44
49
Desired output
file1
PHE 0 10 0 0
ARG 21.0 16 21.0 0
file2
SER 57.9 43 57.9 0
PHE 2.4 44 2.4 0
GLN 86.1 49 83.2 2.9
答案 0 :(得分:0)
第3行,
let x=1; z=x+y in z + 1
需要更改为$3
。
由于星号是$2
中的字段分隔符,因此在它之前的(空的,不存在的)字符串被计为$ 1,而在它之后的文件名为$ 2。< / p>
input.txt