我需要删除文本和空间'localhost'并将剩下的内容放入变量中。我真的不清楚如何使用sed
解析字符串然后将结果解析为变量 - 任何帮助将不胜感激
示例:
输入变量:'localhost CPU'
输出变量:'CPU'
答案 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`