我想用grep到的folloging secuence一個XML文件:grep的與Tab和回車XML
user defined modules)
|-->
<module>
這是我的代碼:
function check()
{
OLDIFS=$IFS
IFS=$'\n'
fileArray=($(find . -type f -not -path "./folder1/*" -not -path "*/folder2/*" -not -path "./folder3/*" -name "pom.xml" \
| xargs awk -v RS='^$' 'match($0,/\|--> \(autogenerated code\)\t\n\t[^\n]+/,a){print a[0]}'))
IFS=$OLDIFS
# get length of an array
numberOfFiles=${#fileArray[@]}
# read all filenames
for ((i=0; i<${numberOfFiles}; i++));
do
echo "ERROR:Found user code modules (file:line:occurrence): ${fileArray[$i]}"
done
if [ "$numberOfFiles" != "0" ]; then
echo "SUMMARY:Found $numberOfFiles pom.xml file(s) containing user code modules."
exit 1
fi
}
check
不清楚如何能我處理它,因爲它包含在中間的回車和標籤中,並不像檢索一個標籤的內容那麼簡單。我在Linux下使用shell openSUSE 12.
我已經嘗試grep -P但不兼容多種模式。一些技巧?
我建議使用XML/HTML解析器(xmllint,xmlstarlet ...)。 – Cyrus
[編輯]你的問題顯示[mcve],包括簡潔,可測試的樣本輸入和預期輸出,以便我們可以開始考慮如何幫助你。 –
我試圖編輯代碼示例。第一行包含在文本的末尾:TAB + ENTER。該示例的第二行以TAB開始。仍然是主要問題。非常感謝您的提示。 – user2961008