【发布时间】:2017-10-18 14:25:02
【问题描述】:
我有像 /Modem/34 这样的字符串行,现在我只想提取 34 .. 如何做到这一点。
【问题讨论】:
-
试试这个
echo "/Modem/34" | grep -Eo '[0-9]+'
我有像 /Modem/34 这样的字符串行,现在我只想提取 34 .. 如何做到这一点。
【问题讨论】:
echo "/Modem/34" | grep -Eo '[0-9]+'
试试
grep -Eo '[0-9][0-9]' infile
【讨论】:
尝试:
A="/Modem/34"
echo ${A##*/}
将字符串保存到名为 A 的变量中,然后使用 shell 的参数扩展仅获取 34(因为它将删除所有内容,直到 /)。 编辑:根据 OP 的请求将变量的值添加到变量中。
A="/Modem/34"
VAR=${A##*/}
echo $VAR
34
【讨论】:
如果要提取最后一个斜线后的文本:
grep -o '[^/]*$'
或
awk -F'/' '{print $NF}'
$ sed 's#.*/##;s/ .*//'<<< "a/b/c/this fo ba"
this
【讨论】:
VAR=$(sed cmd)