如何搜索字符串并将其放在shell脚本中的变量中?

时间:2013-01-17 14:47:01

标签: shell sed grep

只是想知道是否有人可以帮助我。我有一个包含一行的文件:

W32i   APP   -     8.0.0.xxxxx shp 6SFE25~1.EXE

xxxxx是5位数字,每次都有不同的数字。我希望能够搜索xxxxx并将其放入变量中,因此我可以使用此varibale。我使用grep和sed吗?

3 个答案:

答案 0 :(得分:1)

#!/bin/sh

read < a.txt
[[ $REPLY =~ 8.0.0.([^\ ]*) ]]
echo ${BASH_REMATCH[1]}

输出

xxxxx

答案 1 :(得分:1)

A.TXT

W32i   APP   -     8.0.0.xxxxx shp 6SFE25~1.EXE

 num=$(< a.txt)
 num=${num#*.0.0.}  # "left" remove everything up to .0.0.
 num=${num%% *}     # "right" remove "all" after " " char
 echo "num=${num}"

输出      XXXXX

您会很高兴您花时间了解${num#xxx}, ${num##xx}, ${num%x}, ${num%%x}之类的变量修饰符之间的区别。高级shell还支持sed类替换,${num/0/9}${num//0/9}

IHTH

答案 2 :(得分:1)

perl -lne 'm/(\d{5})/g;print $1'

测试here