2013-01-17 84 views

回答

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

+0

它的工作原理!評論真的幫助我學習,非常感謝! :) – Babycece

+1

要查看'%'和'%%'修飾符之間的區別,此代碼就是一個很好的例子,即只在'xxxxx shp'中使用'%'結果,因爲刪除從右開始,找到第一個'',並刪除到最後。使用'%%',刪除從右側開始,但隨後查找所有''(向右移動),然後刪除右側的所有內容,只留下'xxxxx'。祝你們好運。 – shellter

+0

我正要問你的區別,你剛剛解釋它!非常感謝您的詳細解釋。這對於像我這樣的新手來說非常有幫助:) xxx – Babycece

1
#!/bin/sh 

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

輸出

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

測試here

相關問題