1

誰かが私を助けることができるかどうか疑問に思っています。次の行を含むファイルがあります。

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

xxxxx は 5 桁の数字で、数字は毎回異なります。xxxxx を検索して変数に入れられるようにしたいので、この変数を使用できます。grep と sed を使用しますか?

4

3 に答える 3

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

ここでテスト

于 2013-01-17T17:49:42.143 に答える
1
#!/bin/sh

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

出力

xxxxx
于 2013-01-17T14:51:26.933 に答える
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}。高度なシェルはsed、同様の置換もサポート${num/0/9}して${num//0/9}います。

IHTH

于 2013-01-17T14:55:19.903 に答える