簡體   English   中英

find和sed在centos 7中不起作用

[英]find and sed doesn't work in centos 7

我試圖在我的整個項目中查找和替換一個單詞,然后嘗試使用以下版本的find並在centos 7中進行sed,但沒有任何效果。

find ./ -name "*.php" -exec sed -i '' s/mysql_/mysqli_/g \;
find ./ -name "*.php" -exec sed -i '' s/mysql_/mysqli_/g {} \;
find ./ -name "*.php" -exec sed -i '' 's/mysql_/mysqli_/g' {} \;
find ./ -name "*.php" -ls | xargs sed -i '' 's/mysql_/mysqli_/g'

sed:無法讀取s / mysql_ / mysqli_ / g:沒有此類文件或目錄

即使我從項目的根目錄運行這些命令,上述所有命令也會讓我循環出現此錯誤。 權限都是正確的。 如果我僅使用find命令就可以了

find ./ -name "*.php" -ls (This Works)

我嘗試了stackoverflow中可用的解決方案,但沒有任何效果。

不需要sed中的第一雙引號,請嘗試:

find ./ -name "*.php" -exec sed -i s/mysql_/mysqli_/g {} \;

語法是要么-i'prefix'--in-place='prefix' ,而不是-i 'prefix' ,因為你添加前綴和參數之間的空間,它使sed使用前綴(空字符串)參數作為正則表達式,並使用實際的正則表達式作為文件名參數,這顯然是找不到的。

這就是為什么您can't read s/mysql_/mysqli_/g: No such file or directory錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM