固定 k,假设 k = 2 用于说明。假设我们有一个文本文件 ,file.txt
它至少有 k 列,并且这些列由|
符号分隔。如何file.txt
通过删除第二列等于“NA”的每一行来清理?假设输出被定向到outfile.txt
.
问问题
3058 次
3 回答
6
awk '$2 != "NA"' FS='|'
输入:
111|222|333
444|NA|666
777|888|999
输出:
111|222|333
777|888|999
于 2013-07-06T05:25:27.883 回答
2
我无法使用 PC,但可以使用以下内容:
gawk -F '|' '$2 != "NA"{ print}' file.txt >outfile.txt
于 2013-07-06T04:03:27.433 回答
1
具有反向匹配的 grep 也可以:
grep -v '^\([^|]\+|\)\{1\}NA|' file.txt > outfile.txt
# ^ ^
# | +-- search pattern
# +----- number of leading columns
于 2013-07-06T08:16:29.467 回答