我试图从字段$5中的相同记录中找到一个字符串模式,该字符串模式由单词结论和字段$2和字段$3的值组成。
例如,my_file.txt是由“AC.26”分隔的:
1|substance1|substance2|red|CONCLUSIONS: the effect of SUBSTANCE1 and SUBSTANCE2 in humans...|
2|substance3|substance4|red|Conclusions: Substance4 is not harmful...|
3|substance5|substance6|red|Substance5 interacts with
有没有办法让awk不打印固定宽度的列?
例如:
"9", "TAYLOR TOWER, JACOB B. "
"9", "UNIVERSITY HOSPITALS-EAST"
"AR", "SCHOTTENSTEIN CENTER "
"B1", "NEWARK RESIDENCE HALL "
"B2", "NEWARK RESIDENCE HALL "
"CC", "OHIO STAD
我有4个字段,我想从上一列开始,忽略前3列。我如何在awk中使用NF来做到这一点?
root pts/0 192.168.108.1 Mon Mar 19 08:45 still logged in
root tty1 Mon Mar 19 08:45 still logged in
reboot system boot 3.10.0-693.el7.x Mon Mar 19 08:44 - 08:49 (00:04)
root pts/0 192.168.108.1
文件内容如下
AB: 20190131 13 J-1|19:30:00.000000000 18:06:00.000000000 123466 50 @TEST . "" 1234 - I . ".." "" "" "TEST TEXT 1" "TEXT 2: Sr of human happiness. To obtain some advantage from it? But who has any right to find f.==Required file.csv.gz FIELD*SERVE
我想在我的awk脚本的BEGIN部分中为一个文件创建一个头,但是要做到这一点,我需要知道有多少字段。我可以在主部分中设置一个检查,以检查是否为NR==1,但这将在每一行上得到评估,从而减慢速度。
下面是我使用单线衬垫的尝试。
fields.txt
a 1
b 2
c 3
结果:
awk 'NR==1{a=NF; print "before begin, there are ", a, "fields"}BEGIN{print "there are ", a, "fields"}{print a"\t