ループ空間ディレクトリ名

ループ空間ディレクトリ名

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区切り記号(FS)を変更することでこれを達成できます。

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

答え2

CT.txt に 1/line エントリがあると仮定すると、この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

関連情報