我是一个完整的新手,抱歉,如果标签不正确,我不能完全确定mac终端和unix / linux之间的区别。
我在mac终端上处理文本文件。
我尝试过滤第4列,以便只显示 John 的行。然后将第3行导出到csv。
示例:
1 | 11/11/11 | 8:01 | John was here<br/>
2 | 12/11/11 | 8:02 | Derek was here<br/>
3 | 13/11/11 | 8:03 | John was also here<br/>
4 | 14/11/11 | 8:04 | Bob was here<br/>
到目前为止,我只是设法导出了我希望过滤的价值...
cut -f 4 Data_File_Name | grep -o "John" | sort -r > Export_CSV_File.csv
我错过了显示仅包含John而只导出特定列的数据的基础知识。
非常感谢任何帮助
答案 0 :(得分:1)
你正在以正确的方式接近它,但存在一些问题。
cut
的默认分隔符是制表符,因此您需要告诉它使用|
:cut -d '|' -f 4 Data_File_Name
这会给你:
John was here
Derek was here
John was also here
Bob was here
注意每行前的额外空格。如果需要,可以使用cut -c 2-
grep的-o
标志将使其仅输出匹配行的部分。如果您想要完整列,则应省略此标志:grep "John"
组合:
cut -d '|' -f 4 Data_File_Name | cut -c 2- | grep "John" | sort -r
John was here
John was also here
编辑:
如果您使用制表符作为分隔符,并且在制表符之前和之后没有前导空格(因为管道|
周围):
cut -f 4 Data_File_Name | grep "John" | sort -r