2013-10-16 17 views
0

我有一個包含各種信息的文件。這些字段由|分隔。其中一個字段包含一個目錄。例如:如何驗證數據是否有尾隨「/」

blah|blah|blah|/usr/local/etc/|blah|blah 

我需要驗證路徑字段不以「/」結尾。我正在使用ksh。有什麼建議麼?

謝謝。

回答

2

假定目錄永遠是在第4場

line=0 
while IFS='|' read -rA fields; do 
    let line++ 
    [[ ${fields[3]} == */ ]] && echo line $line: ends with a slash 
done < filename 
0

不是的ksh,但這是awk自然的工作:

awk -F\| '$4 ~ /\/$/ { 
    print "Trailing slash in line "NR":", $4 
}' ${file:?} 
0

試試這個:

if [ line ~= '(/\w+)+(\||$)' ] 

我shell語法是生鏽的,所以這可能需要一點點按摩成形

0

,不要忘記買/(根),特殊的路徑 我把/(根)在下面的代碼

echo "blah|blah|blah|/usr/local/etc/|blah|blah| 
blah|blah|blah|/|blah|blah 
blah|blah|blah|.|blah|blah 
blah|blah|blah|/usr/local/etc|blah|blah" \ 
sed " 
    /\/\|/ { 
    /\|\/\|/ !s/\/|/|/ 
    }" 

交代: // \ | /治療線,其中 「/ |」出現 // \ | /!在線處理「|/|」不會出現(在此之前的測試發生的情況下) s // |/| /替換「/ |」通過「|」 (這裏當兩個測試都成功發生時)

相關問題