使用一个sed命令我试图将.txt文件中发现的所有测试和测试转换为全部大写。我也想只打印转换后的行,所以我使用的是-n。我已经玩了一个多小时了。问题是我能够转换一个或另一个(测试或测试)但不能同时转换。
任何帮助都会非常感激。谢谢!
答案 0 :(得分:1)
使用此
sed -e 's/tests/TESTS/g; s/test/TEST/g; T; p;' input.txt
使用分号可以执行多个命令。
答案 1 :(得分:0)
这可能适合你(GNU sed):
sed 's/\<tests\?\>/\U&/gp;d' file
这将使用可选\<....\>
(test
)开始s
的大写字词{s\?
)。
答案 2 :(得分:0)
很抱歉收到的回复很晚,但是希望这里是一个可以理解的基本正则表达式(无扩展正则表达式):
sed 's:\<test\(s*\)\>:TEST\1:g' < inputFile.txt > outputFile.txt; cat outputFile.txt | grep -n TEST
说明:
:
分隔符(而不是通常的/)\<test\>
匹配测试。前t
之前的字符可以是字母,数字或下划线以外的任何字符。最后一个t
之后的字符也是如此。\(\)
记住括号内的内容。s*
匹配零个或多个s
。\1
用于插入第一个记住的匹配项(即,任意数量的s
的匹配项)。其余部分希望会很清楚。否则请发表评论。