Awk regex:如何删除单词中间以外的所有标点符号?

Awk regex:如何删除单词中间以外的所有标点符号?

收集以下信息此主题,我想用这段代码来满足我的需求,但是提供的代码不适用于多个标点符号(例如“...”)。因此我想对其进行调整,所以这里是我的代码:

awk '{gsub(/^[[:punct:]]+|[[:punct:]]+$/, "")} 1' myfile.txt

但是这并没有按预期工作。有人能解释一下为什么吗,因为我正在学习 bash 和 awk?

输入文件:

@Username 你是个好人,我喜欢你!我讨厌@username,我不想和她共进晚餐……他告诉我“@Username 是个可怕的男人”,但我没听……

预期结果:

用户名你是个好人我喜欢你我讨厌用户名她不是我想和她共进晚餐的人他告诉我用户名是个可怕的男人但我没有听

非常感谢您的指点,我花了相当多的时间尝试了很多事情,但就是不明白。

相关内容