簡體   English   中英

刪除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

這是刪除最后一個字段的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM