我正在尝试为我的包创建规范文件。要列出我正在使用find
命令的文件并将其重定向到文件:
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
我所做的是寻找 dir's
for file_name in `cat $TOPDIR/list_files`
do
chk_1=`ls -l $file_name |grep "^d"`
if [ "chk_1" ] ;then
sed -i "s@^$file_name@%dir $file_name@" $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
选项,但它仍然在替换 all /bin
。有什么办法可以加入"\n"
吗sed
?