操作系统:OSX
方法:从命令行,所以使用sed,cut,gawk,虽然最好不要安装模块.
方法:从命令行,所以使用sed,cut,gawk,虽然最好不要安装模块.
本质上我试图拿一个csv文件的第一列,并解析为一个新的文件.
示例输入文件
EXAMPLEfoo,60,6 EXAMPLEbar,30,6 EXAMPLE1,3 EXAMPLE2,120,6 EXAMPLE3,6 EXAMPLE4,6
欲望输出
EXAMPLEfoo EXAMPLEbar EXAMPLE1 EXAMPLE2 EXAMPLE3 EXAMPLE4
所以我想要第一列.
这是我到目前为止所尝试的
awk -F"," '{print $1}' in.csv > out.txt awk -F"," '{for (i=2;i<=NF;i++)}' in.csv > out.txt awk -F"," 'BEGIN { OFS="," }' '{print $1}' in.csv > out.txt cat in.csv | cut -d \,-f 1 > out.txt
没有似乎工作,无论是打印第一行还是没有任何内容,所以我假设没有逐行阅读.
你的最后一个选择对我来说是完美的:
原文链接:https://www.f2er.com/bash/386801.html$cat > in.csv EXAMPLEfoo,6 [Ctrl+D] $cat in.csv | cut -d,-f1 EXAMPLEfoo EXAMPLEbar EXAMPLE1 EXAMPLE2 EXAMPLE3 EXAMPLE4
也许线路结局在这里咬你?如果该文件具有DOS风格或甚至旧的Mac风格的行尾,这可能会导致奇怪的行为.尝试运行文件in.csv,看看它出现了什么.
$file in.unix.csv in.unix.csv: ASCII text $file in.dos.csv in.dos.csv: ASCII text,with CRLF line terminators
如果后者是您的情况,请使用dos2unix工具来转换文件.
编辑:在OS X上,似乎是flip
is what you want.