1. 程式人生 > >Linux 常用Shell面試題(一)

Linux 常用Shell面試題(一)

Linux下面開發,Shell命令也是面試時候經常問到的問題。本專題中涉及到的都是比較需要組合多個命令才能完成的命令。

一,替換當前某個目錄下所有檔案中的:www.sina.com.cn為sina.com.cn
這道題至少有4個知識點
1,你需要知道替換使用sed
2,你需要知道如何遍歷當前目錄下的所有檔案
3,你需要如何對每個找到的檔案應用sed
4,你需要知道sed預設替換的時候不會儲存到原檔案。
答案: 
替換所有需要使用sed的g引數
遍歷當前目錄下所有檔案的方法: find / -type f
find聯合sed的使用方法: find . -type f -exec sed ...
sed替換之後,把更新寫入新檔案的方法:-i選項。
所以上面問題的答案: 

 find . -type f -exec sed -i 's/sina.com.cn/www.sina.com.cn/g' {} \;
更方便的一個寫法
 find . -type f | xargs sed -i 's/sina.com.cn/www.sina.com.cn/g'

再加一個帶轉義符的:
$ find ./ -name "*.vcxproj" -exec sed -i "s/\$(ROOT)\/include\/ex;//g" {} \;