SED单词以字母结尾并删除该字母

时间:2013-08-17 00:49:55

标签: unix sed

尝试执行一个unix shell脚本,该脚本从每行一个单词的文件中获取输入,找到以字母s结尾的任何单词并删除该字母。

Input:
Glass
Faces
Passed
Hello
Tests
Pass

Output
Glas
Face
Test
Pas 

我甚至不介意如果输出仍然包含不以s结尾的单词。我可以解决这个问题。

到目前为止我已经

cat $1 | sed -e '/\s$/N; s/\(.*\)./\1/;'

但这是删除每个单词中的最后一个字母,而不仅仅是以s结尾的字母。

我是unix和编程的新手,必须承认语法对我来说仍然很难做对。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

这将有效:

sed -e '/s$/!d' -e 's/s$//'

或者这个:

sed '/s$/!d;s/s$//'

或者这个:

sed -n '/s$/{s/s$//;p;}'