有沒有什麼方法可以在使用bash的文件中查找字符串如XXXX-XXXX-XXXX(其中X是數字和字母)?在使用bash的文件中查找字符串XXXX - XXXX - XXXX
例如:我有一個文本文件中的AAAAAAAA-AAA-AAA-XXXX-XXXX-XXXX這個字符串,我只想提取XXXX-XXXX-XXXX(正好有4個字母/ 。
如果不能使用bash來做到這一點,有沒有其他方式來做到這一點?
謝謝。
有沒有什麼方法可以在使用bash的文件中查找字符串如XXXX-XXXX-XXXX(其中X是數字和字母)?在使用bash的文件中查找字符串XXXX - XXXX - XXXX
例如:我有一個文本文件中的AAAAAAAA-AAA-AAA-XXXX-XXXX-XXXX這個字符串,我只想提取XXXX-XXXX-XXXX(正好有4個字母/ 。
如果不能使用bash來做到這一點,有沒有其他方式來做到這一點?
謝謝。
grep -Eo '\<[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{4}\>' file
-o
僅輸出匹配的文本\<
和\>
防止錯誤匹配,如「12345-1234-12345 「Thx ...它工作正常! – NxA 2014-12-06 00:15:16
試試這個:
grep -E '[0-9a-zA-Z]{4} - [0-9a-zA-Z]{4} - [0-9a-zA-Z]{4}' your.file
我解釋得更好。案件是非常特殊的,因爲我有字符串是在這種形式AAAAAAAA-AAA-AAA-XXXX-XXXX-XXXX,我想提取只有XXXX-XXXX-XXXX(有正確的4個字母/數字組由Xs代替X之前的組是隨機的,沒有指定的長度)。 無論如何感謝您的時間 – NxA 2014-12-05 23:05:38
[[ AAAAAAAA-AAA-AAA-XXXX-XXXX-XXXX =~ [0-9a-zA-Z]+-[0-9a-zA-Z]+$ ]] &&
echo ${BASH_REMATCH[0]}
既然你想找到和提取的pattern..you可以用 「sed的」
讓說你有串
%% $%$ ## @#$ @ - & ^% - &^& -JHU7-iuhY-98Uy- * & $# -
至於你提到XXXXs只有組由字母數字位數
命令行
echo '%%$%##[email protected]#[email protected]&^%-*&*^&-JHU7-iuhY-98Uy-*&$#-(*&^'|sed 's/[^[:alnum:]-]//g'|sed 's/^-\{1,\}//g'|sed 's/-\{1,\}$//g'
輸出
JHU7-iuhY-98Uy
你真的要圍繞每個'-'字符的空間?你知道'grep',它是爲了匹配模式而設計的。你可以將你的字符串回顯爲'grep',或者如果你有一個文件,你可以'grep'xxx ....'file'並且得到與該模式匹配的行。這裏有1000多個有關grep的問題。祝你好運。 – shellter 2014-12-05 22:52:17