bash – 将csv文件的第一列解析为新文件
发布时间:2020-12-15 18:55:54 所属栏目:安全 来源:网络整理
导读:操作系统:OSX 方法:从命令行,所以使用sed,cut,gawk,虽然最好不要安装模块. 本质上我试图拿一个csv文件的第一列,并解析为一个新的文件. 示例输入文件 EXAMPLEfoo,60,6EXAMPLEbar,30,6EXAMPLE1,3EXAMPLE2,120,6EXAMPLE3,6EXAMPLE4,6 欲望输出 EXAMPLEfoo EXA
操作系统:OSX
方法:从命令行,所以使用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 没有似乎工作,无论是打印第一行还是没有任何内容,所以我假设没有逐行阅读.
你的最后一个选择对我来说是完美的:
$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上,似乎是 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |