Ven*_*tta 3 linux csv awk grep
我有一个如下所示的 CSV 文件:
A,B,C
1,2,3
4,4,4
1,2,6
3,6,9
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来 grep B 列为 2 的所有行,并保留标题?例如,我希望输出像
A,B,C
1,2,3
1,2,6
Run Code Online (Sandbox Code Playgroud)
我在 linux 下工作
使用 awk:
awk -F, 'NR==1 || $2==2' file
Run Code Online (Sandbox Code Playgroud)
NR==1 -> 如果第一行,$2==2 -> 如果第二列等于 2。如果上述任一为真,则打印行。
要使用标题列名称选择列:
awk -F, -v col="B" 'NR==1{for(i=1;i<=NF;i++)if($i==col)break;print;next}$i==2' file
Run Code Online (Sandbox Code Playgroud)
将 B 替换为要检查的列的适当名称。
| 归档时间: |
|
| 查看次数: |
2613 次 |
| 最近记录: |