我可以用文件名中的新行做什么?
What can I do with new lines in file name?
如果文件中有换行符,而我使用 find 或 ls,它显示为“?”文件名中的符号。但是当我使用 |为了用它做更多的事情,它分裂了字符串并弄乱了一切。我该如何处理?
根本不要通过管道传输 ls 的结果。如您所见,这是不可预测的。使用 find
代替:
find -maxdepth 1 -exec command {} \;
{}
表示文件名。
或者,您也可以使用 glob 表达式。 glob 表达式的结果不受单词拆分的影响,这意味着如果它们包含换行符或空格是安全的:
for file in ./* ; do
command "$file"
done
然后可以在另一个管道中使用该命令的结果。
如果文件中有换行符,而我使用 find 或 ls,它显示为“?”文件名中的符号。但是当我使用 |为了用它做更多的事情,它分裂了字符串并弄乱了一切。我该如何处理?
根本不要通过管道传输 ls 的结果。如您所见,这是不可预测的。使用 find
代替:
find -maxdepth 1 -exec command {} \;
{}
表示文件名。
或者,您也可以使用 glob 表达式。 glob 表达式的结果不受单词拆分的影响,这意味着如果它们包含换行符或空格是安全的:
for file in ./* ; do
command "$file"
done
然后可以在另一个管道中使用该命令的结果。