![](/img/trans.png)
[英]Script to delete all /n number of lines starting from a word except last line
[英]Delete the last word of a line in shell
我正在寻找如何删除shell中一行的最后一个单词! 我使用sed但我只找到了如何删除每一行的激光词,而不是指定行。 例如:我有一个文件test.db
key1 value1
key2 value2
key3 value3
我只想删除value3
sed -i s/'\w*$'// test.db
这一行只删除每一行的最后一个字!
试试这个 :
sed -i '1{s/[^ ]\+\s*$//}' file test.db
如果您只想删除最后一行的最后一个单词,那么您可以使用:
sed -i '$s/\w*$//' test.db
如果要删除key3
行中的最后一个单词:
sed -i '/key3/s/\w*$//' test.db
这是删除最后一个字段的awk
:
echo "one two three" | awk '{$NF="";sub(/[ \t]+$/,"")}1'
one two
删除行的最后一个单词
因为你的目标是key3 value3
sed -i '/key3 value3/s/\S*$//' test.db
其中\\ S表示不是空格或空格的数字。
删除特定行的最后一个单词(一般规则)
sed -i '/line pattern/s/\S*$//' test.db
线条图案表示在您要定位的线条上找到的图案
这可能适合你(GNU sed):
sed -r '$s/(\s*)\S+(\s*)$/\1\2/' file
这将从最后一行中删除最后一个非空格标记(保留任何周围的空白区域)。
要删除周围的空白区域,请使用:
sed -r '$s/\s*\S+\s*$//' file
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.