2012-09-20 38 views
0

我只找到了如何在文件中查找字符串,但是如何替換已註釋的行以及應該如何正確替換它們?如何在bash中找到並替換.gitignore中的文件

#!/bin/sh 
echo enter file name 
read fname 
exec<$fname 

while read line 
do 
    echo $line; 
done 
+0

它會非常複雜 - 很可能你最終會使用sed和/或awk。正確的方法是用任何常用的腳本語言來實現它。 – iced

+1

這是從清晰的方式,你正在努力完成。請編輯您的答案以更好地描述問題。你想讀取'.gitignore'文件,然後做什麼內容? – c00kiemon5ter

+0

我想替換忽略擴展名的所有文件 –

回答

0

爲了移動,其名稱匹配的模式給在.gitignore文件,請嘗試以下循環:

while read pattern; do 
    echo mv $pattern /var/tempdir 
done < .gitignore 

如果這個循環的輸出看起來像命令的正確列表,刪除單詞「回聲」並再次運行循環以實際移動文件。

+0

謝謝,明白了! –

+1

這不太可能適用於類似'/ * .log'或'!somefile'的模式...可能還有其他許多模式... – twalberg

+0

非常好的點,@twalberg。這段代碼應該被認爲是一個腳本生成器,它的輸出應該是手動檢查和編輯的,而不是腳本本身。 – chepner