Linux/Unix sed:从文件/输入中删除Word

时间:2020-01-09 10:40:09  来源:igfitidea点击:

Linux中如何删除文本文件中每行以特定字母(如g)结尾的所有单词?
我如何删除基于正则表达式的词使用sed或awk下的Linux / Unix像操作系统?

解决方法:

您可以使用任何标准的Unix文本编辑和处理工具来查找和替换/删除文件中的单词。

sed示例

语法为:

sed 's/\<word\>//g' input
sed -e 's/\<regex-for-word\>//g' input > output

在此示例中,从输入中删除foo单词:

echo 'This is a foo test' | sed -e 's/\<foo\>//g'

要删除每行中以字母g结尾的所有单词,请执行:

sed -e 's/\<[a-zA-Z0-9]*[g|G]\>//g' input

AWK示例

语法为:

awk '{gsub("word", "");print}' input
awk '{gsub("regex", "");print}' input > output

在此示例中,从输入中删除条形码:

awk '{gsub("bar", "");print}' <<< "This is a bar test"

要使用gnu/awk删除每行中所有以字母g结尾的单词,请执行:

awk '{gsub("[a-zA-Z0-9]*[g|G]$", "");print}' input

或者

awk '{gsub("\<[a-zA-Z0-9]*[g|G]\>", "");print}' input