1

我正在尝试读取包含以下信息的文本文件-“info.txt”

信息.txt

1,john,23
2,mary,21

我想要做的是将每一列存储到一个变量中并打印出任何一列。

我知道这对你们来说可能看起来很简单,但我是编写 bash 脚本的新手,我只知道如何读取文件但我不知道如何分隔 , away 并需要帮助。谢谢。

while read -r columnOne columnTwo columnThree
do 
echo  $columnOne
done < "info.txt"

输出

1,
2,

预期产出

1
2
4

2 回答 2

4

您需要设置记录分隔符:

while IFS=, read -r columnOne columnTwo columnThree
do 
echo "$columnOne"
done < info.txt
于 2013-10-27T03:44:06.673 回答
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
于 2015-10-15T11:02:59.263 回答