【问题标题】:Removing punctuation from txt file in Linux terminal using 'tr' and 'awk' commands使用“tr”和“awk”命令从 Linux 终端中的 txt 文件中删除标点符号
【发布时间】:2018-08-18 08:13:21
【问题描述】:

我目前正在学习 Linux 终端基础知识速成课程,其中一项任务是使用“awk”和“tr”命令替换文本文件中的标点符号。我已尝试四处寻找解决方案,但对我没有任何帮助,有什么帮助吗?

【问题讨论】:

  • 请在您的问题中添加示例输入和该示例输入所需的输出。
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。
  • 快速提示是tr -d '[:punct:]',但您的问题非常模糊:替换为什么?

标签: linux awk terminal command


【解决方案1】:

使用tr(正如格伦杰克曼已经指出的那样):

cat TEXTFILE | tr -d '[:punct:]' > OUTFILE

使用awk(用gawkmawk测试):

cat TEXTFILE | awk '{ gsub(/[[:punct:]]/, "", $0) } 1;' > OUTFILE

您也可以在 AWK 中省略 cat

awk '{ gsub(/[[:punct:]]/, "", $0) } 1;' TEXTFILE > OUTFILE

注意:TEXTFILE 和 OUTFILE 必须不同。

【讨论】:

  • 请注意,您永远不能让OUTFILE 等于TEXTFILE。看看Bash Pitfalls 13
  • @kvantour,是的,我想即使cat 也不能保证cat 会在awk 想要写信之前完成阅读。谢谢。
【解决方案2】:

tr --help,-d 删除 tr -d [:punct:] 输出文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 2013-10-28
    • 1970-01-01
    • 2014-12-15
    • 2020-07-09
    • 1970-01-01
    • 2015-05-21
    相关资源
    最近更新 更多