我的檔案和內容如下
"SOME WORDS", "AB@@ 9897 7437 8788 8234 78","SOME WORDS" />,
"AB@@ 9897 7437 8788 8236 79"。
我們如何在.sh中獲得所有'xxxx xxxx xxxx xxxx xx'的匹配模式?
for fetchData in `grep -o 'AB*s[0-9]*s[0-9]*s[0-9]*' FILE_NAME`。
do
echo 'Data = '${fetchData}
done
我正在列印
AB@@
9897
...
..
但是我想列印
'AB@@ 9897 7437 8788 8234 78'/span>
'AB@@ 9897 7437 8788 8236 79'/span>
uj5u.com熱心網友回復:
使用GNU grep。使用o標志。
grep -o 'AB@@.*7[89]'/span> file.txt
如果中間只有數字字串的話。
grep -o 'AB@@[0-9 ]*7[89]' file.txt
按照OP的評論。用-E標志來表示ERE.
grep -Eo 'AB@@ [[:digit:]]{4}。[[:digit:]]{4}。[[:digit:]]{4}。[[:digit:]]{4}。[[:數字:]]{2}' file.txt
帶有-P標志的PCRE。
grep -Po 'AB@@ d{4} d{4} d{4} d{2}' file.txt
默認情況下grep使用BRE
uj5u.com熱心網友回復:
$ grep -o '".... .... .... .... ..."'/span> file.txt | tr -d "
ab@@ 9897 7437 8788 8234 78
ab@@ 9897 7437 8788 8236 79
uj5u.com熱心網友回復:
當我嘗試你的例子時,grep根本就沒有產生任何輸出。原因是s在一個簡單的regexp中沒有特殊含義。
你沒有準確描述你的字串模式。假設我們可以將任何既不包含雙引號也不包含逗號的字符序列作為要回傳的字串,下面的例子就可以了:
你沒有準確描述你的字串模式。
x='"SOME WORDS", "AB@@ 9897 7437 8788 8234 78", "SOME WORDS", "AB@@ 9897 7437 8788 8236 79"'/span>
for fetchData in $(grep -o '[^",]*' <<< $x)
do
if [[ $fetchData == *[^ ]* ]] 。
then
echo 找到的字串。"$fetchData"。
# 在這里處理你的資料。
else
: # 忽略,因為只有空格。
fi : # 忽略,因為只有空格。
done
如果你真的需要一天s來代表一個空格,請使用-P選項。
uj5u.com熱心網友回復:
根據你的詢問,你能不能試試下面的方法,并檢查它是否有效:
grep -Eo '[a-zA-Z0-9& . _-@]{4}s [[:digit:]]{4}s [[:digit:]]{4}s [[:digit:]]{4}s [[:digit:]]{4}s [[:digit:]]{2}' file
輸出:
AB@@ 9897 7437 8788 8234 78
ab@@ 9897 7437 8788 8236 79
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/318126.html
標籤:
