我看过这篇文章:sed delete remaining characters in line except first 5它帮助我删除x后的所有字符。但是,我很难找到如何删除x字符后的所有单词。如何删除X字符后的所有单词
我开始使用此代码:
echo "StackOverflow Users Are Brilliant And Hard Working" | sed 's/.//30g'
#character 30 ---------------------^
我尝试:
echo "StackOverflow Users Are Brilliant And Hard Working" | sed 's/ .* //30g'
#character 30 ---------------------^
在这些输出,我要么切断了最后一个字或词计数。相反,我需要删除30个字符后的单词。我在不同的行/字长度上运行它,这就是为什么我不能把它放在单词的末尾。
所需的输出:
StackOverflow Users Are Brilliant
如果你知道如何放在一起计算后x个字的话,您的帮助将不胜感激。
请注意:如前所述,不要将代码更改为33或34个字符。问题的关键在于在30个字符后删除所有单词。
酷解决方案@batman :-)适用于我! – DomainsFeatured
grep解决方案是最短的一个,我试图用grep解决这个问题,但忘记了'^'并且它产生了多行。 –
@Paweł[email protected],我实际上在我的程序中使用了Pawel的解决方案。但是,我选择这个是因为'awk'和'grep'的双重回答。此外,它的得分最高,我确实欠你一个蝙蝠侠。帕维尔,我希望很多人都喜欢你的答案,因为你给出了非常有帮助的解释。它对我帮助很大,也会帮助其他人。再次感谢batMan :-) – DomainsFeatured