bash shell逐行读取行
时间:2020-01-09 10:37:26 来源:igfitidea点击:
如何在UNIX/Linux/BSD Bash Shell下逐字段读取文件?
我的示例输入数据文件如下:
device1,deviceType,major,minor,permissions
device2,deviceType,major,minor,permissions
. .
deviceN,deviceTypeN,major,minor,permissions
对于每一行,我需要按如下所示构造并执行一个shell命令:
/path/to/deviceMaker --context= -m $permissions $device2 $deviceType $major $minor
您可以将while循环与read命令,内部字段分隔符(IFS)和HERE STRINGS一起使用,如下所示:
#!/bin/bash
input=/path/to/data.txt
[ $# -eq 0 ] && { echo "Usage: ##代码## arg1"; exit 1; }
arg=""
cmd=/path/to/deviceMaker
while read -r line
do
IFS=, read -r f1 f2 f3 f4 f5 <<<"$line"
# quote fields if needed
$cmd --context="$arg" -m $f5 $f1 $f2 $f3 $f4
done <"$input"

