我从一个命令中提取文件名,它返回许多文件名,我将它们放入一个文件中 代码:
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
请给出你的建议,
答案 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