阅读文本文件 - bash

时间:2013-10-27 03:41:24

标签: bash shell

我正在尝试阅读包含以下信息的文本文件“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

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