cut 命令在输出为“ * ”时表现不同

cut 命令在输出为“ * ”时表现不同

我正在尝试创建一个 shell 脚本,下面是我尝试从文件中的记录中提取一些值的部分:

tgt_val=`cat $file_name | grep "$string_name" | cut -d"|" -f$column_no`

当指定的列具有某些数字或字符串值时,此方法可以正常工作,但是当该列的值为“ * ”时,此方法会失败

例如:

102|Sam|*|USA

此命令对于第 1,2 和 4 列可以正常工作

但是,在第 3 列的情况下,它为我提供当前目录中所有文件的输出。

有人请帮忙解决这个问题。

答案1

正在发生的事情是*shell 正在以某种方式解释它。确保所有提取的字段始终被正确引用。

相关内容