我正在尝试阅读包含以下信息的文本文件“info.txt”
info.txt
1,john,23
2,mary,21
我想要做的是将每个列存储到一个变量中并打印出任何一列。
我知道这对你们来说似乎很简单,但我是新手写的bash脚本,我只知道如何阅读文件,但我不知道如何划分,离开并需要帮助。谢谢。
while read -r columnOne columnTwo columnThree
do
echo $columnOne
done < "info.txt"
输出
1,
2,
预期产出
1
2
答案 0 :(得分:4)
您需要设置记录分隔符:
while IFS=, read -r columnOne columnTwo columnThree
do
echo "$columnOne"
done < info.txt
答案 1 :(得分:0)
最好检查文件是否也存在。
#!/bin/bash
INPUT=./info.txt
OLDIFS=$IFS
IFS=,
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read -r columnOne columnTwo columnThree
do
echo "columnOne : $columnOne"
echo "columnTwo : $columnTwo"
echo "columnThree : $columnThree"
done < $INPUT
IFS=$OLDIFS