从字符串sed中删除一个单词?

时间:2015-06-24 14:18:41

标签: linux bash unix

我需要删除文本和空间'localhost'并将剩下的内容放入变量中。我真的不清楚如何使用sed解析字符串然后将结果解析为变量 - 任何帮助将不胜感激

示例:

输入变量:'localhost CPU'

输出变量:'CPU'

4 个答案:

答案 0 :(得分:2)

试试这个:

a="localhost CPU"
b="${a#* }"
echo "$b"

输出:

CPU

答案 1 :(得分:1)

有很多方法可以实现这一目标:

Using Bash Parameter Expansion

a="localhost CPU"
b="${a/localhost /}"
echo "$b"

使用cut

b="$(echo "$a" |cut -d" " -f2)"

使用tr

b="$(echo "$a" |tr -d "localhost ")"

使用grep(使用perl regex):

b="$(echo "$a" |grep -oP "(?<=localhost ).*")"

答案 2 :(得分:0)

strppedLocal=$(echo "$dataItems" | sed 's/[^ ]* //')

其中$dataItems包含'localhost CPU'

答案 3 :(得分:0)

我通常按以下方式执行:首先,我回显变量的内容并将其传递给sed,然后搜索“localhost”并将其替换为空。然后将所有内容的输出存储在名为output的变量中。

a="localhost CPU"
output=`echo $a | sed -e "s/localhost //g`