用sed删除单词范围

时间:2015-04-28 20:49:40

标签: sed

我正在尝试使用sed从文件中删除Unix命令行中的一系列单词,我无法弄明白。例如,如何删除2-4位的单词? 如果文件包含:“这是我创建的文件。”我希望它是:“这是由我创造的。” 非常感谢!

3 个答案:

答案 0 :(得分:1)

尝试使用GNU sed(将单词1和单词5打印到最后一个单词):

echo "This is a file created by me." | sed 'y/ /\n/' | sed -n '1p;5,$p' | sed 'N;N;N;y/\n/ /'

输出:

This created by me.

答案 1 :(得分:1)

您也可以使用awk

echo "This is a file created by me." | awk '{for (i=1;i<=NF;i++) if (i<2||i>4) printf "%s ",$i;print ""}'
This created by me.

答案 2 :(得分:1)

这可能适合你(GNU sed):

sed -r 's/(\s+\S+){3}//' file