bash - Sed 就地编辑

标签 bash sed

for term in `cat stopwords`; do sed -i 's/\<$term\>//g' spam.txt ;done

鉴于停用词每行包含一个词,而 spam.txt 是纯文本文件,我只需要替换停用词的精确匹配项。没有像我预期的那样表现...... 请注意,这两个文件中都包含 doesn'tcouldn't 等词。

最佳答案

您确定要在 for 循环中运行 sed 吗?我会使用 sed 脚本文件。

TMPFILE=mktemp
for WORD in $(cat stopwords); do echo 's/'$WORD'//g' >> $TMPFILE; done
sed -f $TMPFILE spam.txt
rm -f $TMPFILE

关于bash - Sed 就地编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6667835/

相关文章:

c++ - 通过 bash 脚本查找和修改函数定义 (C++)

linux - 如果字符串中有点,如何查找确切的单词

linux - 覆盖/boot/grub/menu.lst?

linux - 替换所有不包含匹配字符串的行

linux - 使用 bash 从文本文件中提取单词

bash - vim 终端 OS X Mountain Lion 中的光标颜色

linux - 使用 wget 时同时使用 -i 和 -O

bash - 终端:使用 sips 中的图像信息来重命名文件

sed - 使用 sed 删除文件的行 - 意外行为

linux - 希望 sed 有一个与 ed 方便的 j 命令等效的命令