我有一个看起来像这样的文件:
work:week:day:england:
work1:week:day:sweden:
work2:week:day::
.....
Run Code Online (Sandbox Code Playgroud)
每次我遍历列表我想要每个字符串作为一个变量,我可以使用.例如,如果我想知道我在哪个位置工作,我会从第一列"work*"获得第四个位置列
我试过这个:
for country in $( awk -F '[:]' '{print $1}' file.txt); do
if [[ "$country" == "england" ]];
then
echo "This user works in England!"
else
echo "You do not work in England!"
fi
done
Run Code Online (Sandbox Code Playgroud)
我想让每个字符串用冒号分隔,作为每个循环的每一行的变量.
你可以使用bash:set IFS(内部字段分隔符)to :,这将正确捕获字段:
while IFS=":" read -r a b c country
do
echo "$country"
done < "file"
Run Code Online (Sandbox Code Playgroud)
返回:
england sweden
通过这种方式,您可以使用$a第一个字段,$b第二个字段,$c第三个字段和第四个字段$country.当然,根据您的要求调整数量和名称.
全部一起:
while IFS=":" read a b c country
do
if [[ "$country" == "england" ]]; then
echo "this user works in England"
else
echo "You do not work in England"
fi
done < "file"
Run Code Online (Sandbox Code Playgroud)