cat $INPUT_FILE| while read LINE
do
abc=cut -d ',' -f 4 $LINE
答案 0 :(得分:2)
的Perl:
cat $INPUT_FILE | perl -ne '{my @fields = split /,/; print $fields[3];}'
答案 1 :(得分:1)
关键是如果想要保存在变量中的命令输出,请使用命令替换。
POSIX shell(sh
):
while read -r LINE
do
abc=$(cut -d ',' -f 4 "$LINE")
done < "$INPUT_FILE"
如果您使用的是旧版Bourne shell,请使用反引号代替首选$()
:
abc=`cut -d ',' -f 4 "$LINE"`
在某些shell中,您可能不需要使用外部实用程序。
Bash,ksh,zsh:
while read -r LINE
do
IFS=, read -r f1 f2 f3 abc remainder <<< "$LINE"
done < "$INPUT_FILE"
或
while read -r LINE
do
IFS=, read -r -a array <<< "$LINE"
abc=${array[3]}
done < "$INPUT_FILE"
或
saveIFS=$IFS
while read -r LINE
do
IFS=,
array=($LINE)
IFS=$saveIFS
abc=${array[3]}
done < "$INPUT_FILE"
答案 2 :(得分:0)
击:
while read line ; do
cut -d, -f4 <<<"$line"
done < $INPUT_FILE
答案 3 :(得分:0)
Straight Perl:
open (INPUT_FILE, "<$INPUT_FILE") or die ("Could not open $INPUT_FILE");
while (<INPUT_FILE>) {
@fields = split(/,/, $_);
$use_this_field_value = $fields[3];
# do something with field value here
}
close (INPUT_FILE);