0

我想提取名为 $DequeuedItem 的 bash 脚本变量中的字段。字段以制表符分隔。

我尝试了以下句子:

DequeuedItemF1=$(echo $DequeuedItem | cut -f1)

但是 DequeuedItemF1 获得了整个 $DequeuedItem,并且似乎制表符变成了常规空格。echo 命令是否在流到达 cut 命令之前对选项卡进行转换?

4

1 回答 1

1

当您echo使用未引用的变量时,制表符将更改为空格。双引号将保留选项卡:

DequeuedItemF1=$(echo "$DequeuedItem" | cut -f1)

如果 不DequeuedItem包含内部空格,您也可以使用

DequeuedItemF1=$(echo $DequeuedItem | cut -d\  -f1)

但第一个选项更清晰,更健壮。(请注意,反斜杠后面有两个空格。反斜杠转义第一个空格,成为 的分隔符cut,第二个空格将-d选项与-f选项隔开。令人困惑,更有理由使用另一个选项!)

于 2012-04-14T18:18:54.573 回答