只是想知道是否有人可以帮助我。我有一个包含一行的文件:
W32i APP - 8.0.0.xxxxx shp 6SFE25~1.EXE
xxxxx是5位数字,每次都有不同的数字。我希望能够搜索xxxxx并将其放入变量中,因此我可以使用此varibale。我使用grep和sed吗?
答案 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