可以剪切命令使用动态字段列表

时间:2018-06-12 23:18:02

标签: linux eval cut

我有以下代码结构。我收到第二个cut命令的错误,我感觉它不喜欢字段列表的动态分配。请咨询。

** update:**错误(“cut:invalid byte or field list”)表示无效的字符或字段集。出于某种原因,我猜测它无法在执行cut命令之前评估parsecolumns。

#!/bin/bash
parsecolumns="1,3,4,5"
parsedelimiter="|"


while i in line 
do
    filename="$(cut -d "," -f2 <<<"$(line)")"
    cut -d $parsedelimiter -f$parsecolumns "$filename" > tempfile.txt #This is throwing an invalid delimiter or field list error

done <Filename.csv

我能够通过将命令添加到变量然后像下面那样执行来解决它,但我很想知道为什么我的初始代码失败。

#!/bin/bash
parsecolumns="1,3,4,5"
parsedelimiter="|"


while i in line 
do
    filename="$(cut -d "," -f2 <<<"$(line)")"
    specvar="cut -d '"
    specvar="$specvar$parsedelimiter' -f"
    specvar="$specvar$parsecolumns $filename > tempfile.txt"
    eval "$specvar"  #This helps resolve the above issue

done < somefilename.csv

0 个答案:

没有答案