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"