如何列出文件名中包含空格的文件?

威廉·R

我正在尝试通过如下所示的for循环,通过将参数传递给函数来逐个读取文件。由于文件名中的空格,参数3产生了很多问题。

例子:

source_file_restructure()
{

echo "inside the function"
source_folder=$1
target_folder=$2
file_pattern=$3
delimiter=$4


echo $file_pattern


echo " Getting inside the function.... "


for file_name in `ls -Al ${source_folder}*"${file_pattern}"*.csv`
do

some processing.......

done

当文件中包含空格(如文件1.csv)时,上述ls命令无法正常运行,

输入 :

SOurce Folder : /home/test/

File Pattern : "file"

Function argument : 
source_file_restructure ${source_folder} ${target_folder} "${file_pattern}" ${delimiter}

建议一些解决方案。

约翰1024

代替

for file_name in `ls -Al ${source_folder}*"${file_pattern}"*.csv`

和:

for file_name in "${source_folder}"*"${file_pattern}"*.csv

与上述第一种形式一样,反引号中的命令输出会进行单词拆分。上面的第二种形式不使用反引号。相反,它将使用任何文件名,甚至包含空格,制表符,换行符或任何其他困难字符的文件名。

另外,更换

source_file_restructure ${source_folder} ${target_folder} "${file_pattern}" ${delimiter}

source_file_restructure "${source_folder}" "${target_folder}" "${file_pattern}" "${delimiter}"

没有双引号,shell将执行单词拆分。随着双引号,该功能将被正确调用,即使source_foldertarget_folder有空格,制表符,换行符,或其他疑难字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

批处理文件;列出目录中的文件,仅列出文件名?

如何使用angular js列出文件夹中的所有文件名

如何从文件名中删除空格

如何通过xargs将ls传递到cat中,以便列出文件名?

列出文件夹中相似文件名的数量

在Powershell文件名中按日期列出文件

如何在目录中的服务器上列出文件名?

如何调用文件名中包含空格的程序?

如何根据提供的模式列出文件夹中的文件名?

如何让grep列出文件名之前的匹配计数?

脚本中的文件名中包含空格的问题

递归列出文件名中包含下划线的文件

如何在不使用查找的情况下列出包含空格和特殊字符的文件名

如何隐藏FFMPEG视频中的输出文件名

如何删除文件名中包含空格的文件?

如何使用grep打开文件名中包含空格的文件?

如何列出文件名中带有“ 2015”的一天之前的文件?

如何列出文件夹中的文件名

在文件名matlab中打开文件,其中包含空格

如何在ffmpeg的输出文件名中包含输入文件名

ls文件名如何按数字顺序在文件名中包含空格字符

如何使用find命令列出文件名而不列出路径?

列出文件名

如何列出文件 - 按文件名和修改日期排序?

在文件名(模式)之后列出文件夹中的文件 - Linux

根据 hdfs 中的模式列出文件名

如何写入文件名中包含空格和特殊字符的文件?

如何在 PHP 中從 dropbox 中列出文件名

linux ls命令列出文件名中包含某些字符的文件