排除最后一个字段
Exclude the last-but-one field
如何排除或删除行中最后一个词之前的词:
示例:
var=1
echo "list $var M"
预计:
list 1M
不确定你的问题是什么,但是:
var=1
echo "list $var M"
给予
list 1 M
要获得 list 1M
,请使用:
var=1
echo "list ${var}M"
list 1M
使用 {...}
确保 M
不是变量名的一部分。
由于您的问题和预期答案不匹配,我发布了 2 个答案。
1) To get output as indicated in question, 2) To remove 2nd last word
1. sed 's/ \(\w*$\)//'
用前面的 space 检查最后一个词 (\w*$
)。替换相同,但没有 space.
输出:
$ echo "list $var M" | sed 's/ \(\w*$\)//'
list 1M
2. sed 's/\w* \(\w*$\)//'
检查最后 2 个词,仅替换为最后一个词。
输出:
$ echo "list $var M" | sed 's/\w* \(\w*$\)//'
list M
如何排除或删除行中最后一个词之前的词:
示例:
var=1
echo "list $var M"
预计:
list 1M
不确定你的问题是什么,但是:
var=1
echo "list $var M"
给予
list 1 M
要获得 list 1M
,请使用:
var=1
echo "list ${var}M"
list 1M
使用 {...}
确保 M
不是变量名的一部分。
由于您的问题和预期答案不匹配,我发布了 2 个答案。
1) To get output as indicated in question, 2) To remove 2nd last word
1. sed 's/ \(\w*$\)//'
用前面的 space 检查最后一个词 (\w*$
)。替换相同,但没有 space.
输出:
$ echo "list $var M" | sed 's/ \(\w*$\)//'
list 1M
2. sed 's/\w* \(\w*$\)//'
检查最后 2 个词,仅替换为最后一个词。
输出:
$ echo "list $var M" | sed 's/\w* \(\w*$\)//'
list M