0
我已經寫了一些代碼,檢查文件中的所有文件夾和不過正則表達式語句匹配他們,就在該目錄的子目錄下,我希望它進入並執行的正則表達式,但每當我運行的代碼它給我這個錯誤SED無法打開子目錄
sed: couldn't edit TestFolder: not a regular file
我一直在看着SO所有和互聯網,並不能找到什麼有用的
我試圖使用代碼我發現爲了解決我的問題,但它沒有幫助,所以我爲可能的可怕代碼道歉,它從各種來源拉
`pwd = "$PWD"
find $pwd = -print | xargs -0 sed -i "/10.0.0.10/d" !(test.sh)
我的目錄結構如下
Test -one.txt -two.txt TestFolder -three.txt
原來的解決方案工作得很好,你能解釋分離的目的用'\'表達? –
原來沒有工作,你只是沒有注意到它失敗了,也許是因爲你沒有運行它針對的是會產生故障輸入。 '.'是一個正則表達式元字符匹配任何字符,所以'/ 10.0.0.10/D'會刪除包含像'10X010Y10'串線。轉義'.'s使它們成爲文字,因此它們只匹配包含'.'s的預期字符串。您也至少需要單詞邊界所以'10 \ .0 \ .0 \ .10'不匹配對的'510.0.0.103'或類似的部分。沒有看到你的輸入文件idk什麼其他保護您可能需要的不匹配。 –
這裏不需要xargs,'find。型的F - 不是-name 'test.sh' -exec SED -i '/\<10\.0\.0\.10\>/d'{} +'會做,對於任何一種文件名,即使空格,換行,等等... – Sundeep