删除 shell 中一行的最后一个单词
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
正在删除你的行的最后一个字
因为您定位的是行 key3 value3
sed -i '/key3 value3/s/\S*$//' test.db
其中 \S 表示不是 space 或白色 space 的数字。
删除特定行的最后一个词(一般规则)
sed -i '/line pattern/s/\S*$//' test.db
线条图案表示在您要定位的线上找到的图案
这可能适合您 (GNU sed):
sed -r '$s/(\s*)\S+(\s*)$//' file
这会从最后一行中删除最后一个非 space 标记(保留周围的任何白色 space)。
要删除周围的白色 space 以及使用:
sed -r '$s/\s*\S+\s*$//' file
这里是 awk
删除最后一个字段:
echo "one two three" | awk '{$NF="";sub(/[ \t]+$/,"")}1'
one two
我正在寻找如何删除 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
正在删除你的行的最后一个字
因为您定位的是行 key3 value3
sed -i '/key3 value3/s/\S*$//' test.db
其中 \S 表示不是 space 或白色 space 的数字。
删除特定行的最后一个词(一般规则)
sed -i '/line pattern/s/\S*$//' test.db
线条图案表示在您要定位的线上找到的图案
这可能适合您 (GNU sed):
sed -r '$s/(\s*)\S+(\s*)$//' file
这会从最后一行中删除最后一个非 space 标记(保留周围的任何白色 space)。
要删除周围的白色 space 以及使用:
sed -r '$s/\s*\S+\s*$//' file
这里是 awk
删除最后一个字段:
echo "one two three" | awk '{$NF="";sub(/[ \t]+$/,"")}1'
one two