我有一个文件,我必须根据规范创建一个具有以下输出文件的脚本:
输入文件具有前 28 行标头,这些标头必须包含在输出中。输入的某些行具有特定参数 ZH:any 值(例如 ZH:100 或 ZH:50)。 ZH 参数所在的列因行而异。
我的输出文件应包含标题行以及包含相应值大于 100 的 ZH 参数的行(例如 ZH:105 、 ZH:200 等)
不包含 ZH 参数的行将被省略。
答案1
使用head
和grep
:
(
# get header
head -n 28 file
# grep lines with ZH value > 100
grep -Ew "ZH:.:[1-9][0-9]{2,}" file
) > outfile
答案2
如果没有一个最小的例子,很难猜出你想要什么......
无论如何,awk
如果您想过滤具有ZH
参数的行,此脚本可能会有所帮助:
awk 'strtonum(gensub(/^.*ZH:.:([0-9]+).*$/, "\\1", "1"))>100' file
这将打印所有行,包括类似 的字段ZH:<one character>:<some number>
。
gensub
提取与 关联的数字ZH
。然后将其转换为数字并与数字 100 进行比较。