【问题标题】:awk append in CSV fileawk 在 CSV 文件中追加
【发布时间】:2017-05-19 00:39:51
【问题描述】:

如何使用awk 命令,因为我需要在下面的时间戳列中添加或附加000。我尝试使用以下命令,

head -n 10000001 ratings.csv | tail -n +2 | awk '{print $1 "000"}' >> ratings_1.csv

但数据不如预期。

$ cat ratings.csv |wc -l
20000264
$ head ratings.csv
userId,movieId,rating,timestamp
1,2,3.5,1112486027
1,29,3.5,1112484676
1,32,3.5,1112484819
1,47,3.5,1112484727
1,50,3.5,1112484580
1,112,3.5,1094785740
1,151,4.0,1094785734
1,223,4.0,1112485573
1,253,4.0,1112484940

我的预期输出应该是这样的

1,2,3.5,1112486027000

【问题讨论】:

  • 您想为所有行添加它吗?还是只针对标题后的第一行?
  • 确保您的预期输出与您发布的输入的预期输出完全一致。这意味着,例如,如果您有 10 行输入并想要 10 行输出,则显示这 10 行输出。
  • 数据“不符合预期”在什么方面?如果我隔离你的 awk 命令,就像在echo '1,2,3.5,1112486027' | awk '{print $1 "000"}' 中一样,它工作正常。我们还需要深入了解这里的其他内容。

标签: bash awk


【解决方案1】:
awk '{ if (NR > 1) { $1 = $1 "000" } print }'

也许不会在每一行都运行if 的更快版本是:

awk 'BEGIN { getline; print } { print $0 "000" }'

【讨论】:

    猜你喜欢
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多