【问题标题】:Bash: write to specific column in CSVBash:写入CSV中的特定列
【发布时间】:2018-10-23 02:59:15
【问题描述】:

我正在尝试将 .txt 文件的内容写入 CSV 文件的“B”或第二列。

awk '{$2 = $2"i"; print}' x.txt >> y.csv

我认为这会将x.txt 的内容写入y.csv,然后在第二列中添加字母“i”。但是,此代码仍会写入第一列。

x.txt 示例:

hello
hellox
hello1

样本输出到 y.csv:

一栏

hello i
hellox i
hello1 i

我想将此内容写入 B 列。最好没有“i”。

对此的任何解决方案将不胜感激。

【问题讨论】:

  • 你的字段分隔符是什么?
  • 你能显示一个示例输入和一个示例输出吗?
  • 它是逗号分隔的。我已经添加了示例输入和输出。感谢您的快速回复。

标签: linux bash unix solaris


【解决方案1】:

你可以使用这个awk:

awk 'BEGIN{FS=OFS=","} {$2 = $1} 1' file.csv

hello,hello
hellox,hellox
hello1,hello1

如果您想在输出的第二列中输入文字 i

awk 'BEGIN{FS=OFS=","} {$2 = "i"} 1' file.csv

hello,i
hellox,i
hello1,i

【讨论】:

  • 感谢您的回答。此代码在命令输出中将 A 列中的文本复制到 B 列。我不想要 A 列中的文本,我想要 .csv 的 B 列中的文本
  • 所以您希望列A 在输出中为空白?
  • 没关系,我用了这个,把A列的文字去掉了。谢谢!
【解决方案2】:

除非我误解你在做什么,否则粘贴命令会更容易和更简单

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2017-07-14
    • 2015-02-01
    • 2015-05-01
    • 1970-01-01
    相关资源
    最近更新 更多