【问题标题】:Exclude the last-but-one field [closed]排除最后一个字段[关闭]
【发布时间】:2015-04-17 22:29:29
【问题描述】:

如何排除或删除行中最后一个单词之前的单词:

例子:

var=1
echo "list $var M"

预期:

list 1M

【问题讨论】:

  • 请澄清您的意思。目前还不清楚。

标签: bash awk sed cut tr


【解决方案1】:

由于您的问题和预期答案不匹配,我发布了 2 个答案。

1) 要得到问题所示的输出,2) 删除倒数第二个字

1. sed 's/ \(\w*$\)/\1/'

使用前面的空格检查最后一个单词 (\w*$)。替换相同,但没有空格。

输出:

$ echo "list $var M" | sed 's/ \(\w*$\)/\1/'
list 1M

2. sed 's/\w* \(\w*$\)/\1/'

检查最后两个单词,只替换最后一个单词。

输出:

$ echo "list $var M" | sed 's/\w* \(\w*$\)/\1/'
list M

【讨论】:

    【解决方案2】:

    不知道你的问题是什么,但是这个:

    var=1
    echo "list $var M"
    

    给予

    list 1 M
    

    要获取list 1M,请使用:

    var=1
    echo "list ${var}M"
    list 1M
    

    使用{...} 确保M 不是变量名的一部分。

    【讨论】:

      猜你喜欢
      • 2014-06-05
      • 1970-01-01
      • 2023-03-22
      • 2021-11-25
      • 2012-09-19
      • 2021-12-14
      • 2013-07-28
      • 2011-11-08
      • 1970-01-01
      相关资源
      最近更新 更多