循环空间目录名称

循环空间目录名称

我有一个CT.txt带有以下输入数据的。 CT.txt:

test testing test 1

并使用以下脚本:

#!/bin/bash
for CITY in $(cat /home/user/CT.txt)
do
 FILES=/mnt/dir1/dir2/$CITY/*
echo $FILES

给我输出如下:

/mnt/dir1/dir2/test
/mnt/dir1/dir2/testing
/mnt/dir1/dir2/test/*
/mnt/dir1/dir2/1/*

其中输出应该是:

/mnt/dir1/dir2/test
/mnt/dir1/dir2/testing
/mnt/dir1/dir2/test 1

如何使CT.txt文件读取之间有空格测试1

答案1

如果你改变 awk 中的 FS(字段分隔符),你就可以实现它。

awk -F: '{ print "/mnt/dir1/dir2/"$1 }' CT.txt

答案2

假设 CT.txt 的条目为 1 / 行,则该while循环更适合您的任务:

while IFS= read -r CITY; do
   FILES=/mnt/dir1/dir2/$CITY
   echo "$FILES"/*
done < /home/user/CT.txt

for循环不适合这种情况,但是仍然可以使其工作:

# set the input field separator to newline and disable globbing
IFS=$'\n';set -f
for CITY in $(< /home/user/CT.txt); do
   FILES=/mnt/dir1/dir2/$CITY
   echo "$FILES"/*
done

相关内容