加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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上,似乎是flip is what you want.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读