我想爲我的包創建spec文件。 要列出我使用find
命令,並將其重定向到一個文件中的文件:SED和整行
readonly TOPDIR=`pwd`
cd package_folder
find . -iname >>$TOPDIR/list_files
現在我的問題是我需要添加前綴%dir
否則我得到的文件列出了兩次錯誤的每個目錄。 我的文件的假設內容是:
$ cat list_files
/bin
/bin/file_a
/bin/my_folder
/bin/my_folder/file_b
我所做的就是尋找目錄的
for file_name in `cat $TOPDIR/list_files`
do
chk_1=`ls -l $file_name |grep "^d"`
if [ "chk_1" ] ;then
sed -i "[email protected]^[email protected]%dir [email protected]" $TOPDIR/list_files
fi
done
現在我的輸出文件(list_files)看起來是這樣的:
%dir /bin
%dir /bin/file_a
%dir /bin/my_folder
%dir /bin/my_folder/file_b
原因是/bin
是一個目錄,因此它將/bin
替換爲%dir
。 嗯,這有點奇怪,因爲我沒有給出@g
選項,但它仍然取代所有/bin
。 有沒有辦法在sed
中包含"\n"
?
謝謝你的工作..現在我知道我的邏輯去尋找dir是錯誤的:D – mage 2013-02-18 06:08:50
正確的邏輯是:chk_1 = \'ls -l \''dirname $ file_name \\'| grep -w \\' basename $ file_name \\'| grep「^ d」\' – mage 2013-02-18 06:24:47