linux - how to convert the script from using command,read to commmand,cut? -
here test sample:
test_catalog,test_title,test_type,test_artist and can use following sript cut off text above comma , set variable respectively:
ifs="," read cdcatnum cdtitle cdtype cdac < $temp_file (ps:and $temp_file dir of test sample)
and if want replace read command,cut.any idea?
there many solutions:
line=$(head -1 "$temp_file") echo $line | cut -d, ... or
cut -d, ... <<< "$line" or can tell bash copy line array:
typeset ifs=, set -a array $(head -1 "$temp_file") # use echo $array[0] # test_catalog echo $array[1] # test_title ... i prefer array solution because gives distinct data type , communicates intent. echo/cut solution slower.
[edit] on other hand, read command splits line individual variables gives each value name. more readable: $array[0] or $cdcatnum?
if move columns around, need rearrange arguments read command - if use arrays, have update array indices will wrong.
also read makes more simple process whole file:
while read cdcatnum cdtitle cdtype cdac ; .... done < "$temp_file"
Comments
Post a Comment