我有一个txt文件,其中包含超过1000行,其中的数据如下:
alpha
hmld ahge 573
otndgd fhj 29
fidnt ank 1962
beta
jdkrs 2
adny 14
urmekhjf 6893
...
我如何搜索和打印(在新的txt文件中)包含诸如(dn)之类内容的任何行,结果如下:
fidnt ank 1962 alpha
adny 14 beta
我用 gedit 搜索,但它是 defecult。我的系统:ubuntu
此致
答案1
你可以这样做:
<input-file.txt awk '
!NF {FNR=0; next}
FNR==1 {header=$0; next}
/dn/ {print $0, header}' > result.txt
每次发现空行时我们都会重置每F
行R
记录编号,然后该行之后的第一行(当为 1 时)被视为N
FNR
标头,然后我们打印记录标头dn
在输入中找到的任何位置。
答案2
基本 grep:
grep 'dn' input-file.txt > result.txt