0

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

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 行上给出了两个文件名。但我想将每个文件名放在 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

请给你的建议,

4

1 回答 1

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
于 2013-01-22T05:42:39.710 回答