使用shell脚本如何在文档中找到具有指定字符数的单词?
我在文档中有一个10个字符长的单词,我希望先找到它,然后用一个5个字符的单词替换它。使用shell脚本执行此操作的最有效方法是什么?由于您提供的信息太少,我将自己编写参数 $ cat foo.txt The quick brown fox jumps over the obligatory dog. $ sed 's/obligatory/happy/' foo.txt The quick brown fox jumps over the happy dog. $cat foo.txt 那只敏捷的棕色狐狸跳过了那只狗。 $sed's/employment/happy/'foo.txt 敏捷的棕色狐狸跳过快乐的狗。使用shell脚本如何在文档中找到具有指定字符数的单词?,shell,awk,grep,gawk,Shell,Awk,Grep,Gawk,我在文档中有一个10个字符长的单词,我希望先找到它,然后用一个5个字符的单词替换它。使用shell脚本执行此操作的最有效方法是什么?由于您提供的信息太少,我将自己编写参数 $ cat foo.txt The quick brown fox jumps over the obligatory dog. $ sed 's/obligatory/happy/' foo.txt The quick brown fox jumps over the happy dog. $cat foo.txt 那只敏
此sed one liner将替换前10个字符:
sed -r 's/\b\w{10}\b/55555/'
同样的例子:
kent$ echo "The quick brown fox jumps over the obligatory dog."|sed -r 's/\b\w{10}\b/55555/'
The quick brown fox jumps over the 55555 dog.
我可以使用命令来查找吗?特别是如果example.txt文件包含10个字符的word,则replace?@anubie sed是一个命令。你到底想干什么?上面的命令确实存在一些可能的问题,因为它将查找属于其他单词的单词(例如,它将匹配“The”in“then”,而不仅仅是一个独立的“The”),并且它正在进行重新匹配,而不是字符串比较,但您确实需要发布一些示例输入/输出,以帮助我们帮助您。