我正在进行一门关于Linux终端基础的速成课程,其中一个任务是使用'awk'和'tr'命令替换文本文件中的标点符号。我已经尝试搜索解决方案,但是没有任何有效的结果,有人能帮忙吗?
使用tr
(正如Glenn Jackman已经指出的那样):
cat TEXTFILE | tr -d '[:punct:]' > OUTFILE
使用 awk
(在 gawk
和 mawk
上测试通过):
cat TEXTFILE | awk '{ gsub(/[[:punct:]]/, "", $0) } 1;' > OUTFILE
你也可以在AWK中省略cat
:
awk '{ gsub(/[[:punct:]]/, "", $0) } 1;' TEXTFILE > OUTFILE
注意:TEXTFILE和OUTFILE必须不同。
cat
也不能保证在awk
想要写入之前cat
会完成读取。谢谢。 - Andriy Makukhatr --help,-d选项表示删除 tr -d [:punct:] < inputfile > outputfile
tr -d '[:punct:]'
,但是你的问题非常模糊:用什么来替换呢? - glenn jackman