在Unix中逐行添加数据

时间:2013-01-22 05:18:58

标签: unix

我从一个命令中提取文件名,它返回许多文件名,我将它们放入一个文件中 代码:

echo `find ${FILE_SYSTEM}/${dir_name}/${sub_dir_name} -type f -size +${BADFILES_SIZE} -exec ls -1lutr {} \; | sort -rn | awk '{print $9}'` >> Somefile.txt

这里的问题是我没有在每一行获取文件名。 它在一行上提供两个文件名。 但我希望每个文件名都在1行。

例如:

/informatica/ETD/PC9/scripts/kamil/temp/temp1.txt /informatica/ETD/PC9/scripts/kamil/temp/temp2.txt

我正在获取如上所示的文件名,我想要如下所示。

/informatica/ETD/PC9/scripts/kamil/temp/temp1.txt
/informatica/ETD/PC9/scripts/kamil/temp/temp2.txt

请给出你的建议,

1 个答案:

答案 0 :(得分:1)

问题是你正在使用echo和反引号。别! echo将其所有参数(似乎是两个文件的列表)展平为一行输出。

错:

echo `find ${FILE_SYSTEM}/${dir_name}/${sub_dir_name} -type f -size +${BADFILES_SIZE} -exec ls -1lutr {} \; | sort -rn | awk '{print $9}'` >> Somefile.txt

右:

find ${FILE_SYSTEM}/${dir_name}/${sub_dir_name} -type f \
     -size +${BADFILES_SIZE} -exec ls -1lutr {} + |
sort -rn |
awk '{print $9}' >> Somefile.txt