我有一个名为contenido.txt的文件 该文件位于下一个表格中
Nombre column1 column2 valor3
Marcos 1 0 0
Jose 1 0 0
Andres 0 0 0
Oscar 1 0 0
Pablo 0 0 0
我需要一个最终文件或第二列中只有0的行的打印
你可以帮我吗?cat contenido.txt | while read LINE; do
var=$(cat $LINE | awk '{print $2}')
if ["$var" == 0]
then
echo $LINE | awk '{print $1}'
fi
done
答案 0 :(得分:2)
在阅读完代码后,您所指的column 2
实际上是第二列(标题为“column1”的列),它不是标题为“column2”的列。所以这一行会对你有所帮助:
awk 'NR==1{print;next}$2==0' file
使用您的数据进行测试
kent$ echo "Nombre column1 column2 valor3
Marcos 1 0 0
Jose 1 0 0
Andres 0 0 0
Oscar 1 0 0
Pablo 0 0 0"|awk 'NR==1{print;next}$2==0'
Nombre column1 column2 valor3
Andres 0 0 0
Pablo 0 0 0
并且代码的第二部分似乎是提取第一列(名称?)。您可以使用awk一次性完成此操作(忽略标题):
kent$ echo "Nombre column1 column2 valor3
Marcos 1 0 0
Jose 1 0 0
Andres 0 0 0
Oscar 1 0 0
Pablo 0 0 0"|awk '$2==0{print $1}'
Andres
Pablo
答案 1 :(得分:1)
column2
为$3
。所以:
$ awk '$3 == 0' < in.txt
Marcos 1 0 0
Jose 1 0 0
Andres 0 0 0
Oscar 1 0 0
Pablo 0 0 0
{print $0}
是隐含行为。