鉴于shell脚本中先前定义的$ LINE,我执行以下操作
var1=$(echo $LINE | cut -d, -f4)
var2=$(echo $LINE | cut -d, -f5)
var3=$(echo $LINE | cut -d, -f6)
Run Code Online (Sandbox Code Playgroud)
我有什么方法可以将它组合成一个命令,其中切割仅运行一次?就像是
var1,var2,var3=$(echo $LINE | cut -d, -f4,5,6)
Run Code Online (Sandbox Code Playgroud)
内置read命令可以分配给多个变量:
IFS=, read _ _ _ var1 var2 var3 _ <<< "$LINE"
Run Code Online (Sandbox Code Playgroud)
是的,如果你对数组没问题:
var= ( $(echo $LINE | cut -d, --output-delimiter=' ' -f4-6) )
Run Code Online (Sandbox Code Playgroud)
请注意,make var0 索引。
尽管将 CSV 转换为 bash 括号可以理解的内容可能会更快、更容易$LINE,然后执行var = ( $LINE ).
编辑:如果您的 $LINE 中有空格,上面的内容将会导致问题...如果是这样,您需要更加小心,并且 AWK 可能是添加引号的更好选择:
var= ( $( echo $LINE | awk IFS=, '{print "\"$4\" \"$5\" \"$6\""}' ) )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3392 次 |
| 最近记录: |