【问题标题】:How do I print this Awk command so I can output to a new file? [duplicate]如何打印此 Awk 命令以便输出到新文件? [复制]
【发布时间】:2019-03-19 05:14:59
【问题描述】:

我已经编写了一个 awk 命令并尝试打印它,以便我可以将结果放入一个新文件中,但我不确定在哪里添加命令的打印部分。 awk 命令做了两件事,它改变 CSV 中一个单元格的内容,并根据单元格的内容删除一列。

awk -F '\t'  '{sub(/OriginalShotName/,"Tape")} $1 != "TAPE"'

我想要做的是将上面的内容打印到终端,这样我就可以使用“>”将它传递到一个新文件中。例如,像这样:

awk -F '\t' '{print $1}' sample.csv > output.csv

只是不能让它与更复杂的 awk 一起工作。

【问题讨论】:

  • 不清楚你为什么说你“只是不能让它工作”。您当前的尝试如何失败?一旦你有一个正确的脚本,你可以根据需要重定向到一个文件。
  • @Corion 已修复。只是没有复制最后一个引号..
  • @tripleee awk 的工作原理是它完成了我想要它做的事情,但我不知道在哪里添加命令的“打印”部分。我以前结合使用它使用“while”循环,并以这种方式将其保存到文件中,如下所示:while read do awk -F '\t' '{sub(/OriginalShotName/,"Tape")} $1 != "TAPE"' done < $1 > newoutput.csv 但是,我需要更改我的方法,最好按照原始问题进行打印。

标签: awk


【解决方案1】:

显而易见的应该有效:

awk -F '\t'  '{sub(/OriginalShotName/,"Tape")} $1 != "TAPE"' sample.csv > output.csv

【讨论】:

  • 谢谢!嗖嗖的经典案例。混淆我的变量(在我的实际用例中,sample.csv 是 1 美元,令人困惑)
  • 请接受重复的提名并取消勾选此答案上的接受标记,以便我将其删除。
猜你喜欢
  • 2023-03-09
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 2020-04-02
  • 1970-01-01
  • 2015-06-30
  • 2018-01-16
  • 2014-05-15
相关资源
最近更新 更多