Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想提取名为 $DequeuedItem 的 bash 脚本变量中的字段。字段以制表符分隔。
我尝试了以下句子:
DequeuedItemF1=$(echo $DequeuedItem | cut -f1)
但是 DequeuedItemF1 获得了整个 $DequeuedItem,并且似乎制表符变成了常规空格。echo 命令是否在流到达 cut 命令之前对选项卡进行转换?
当您echo使用未引用的变量时,制表符将更改为空格。双引号将保留选项卡:
echo
DequeuedItemF1=$(echo "$DequeuedItem" | cut -f1)
如果 不DequeuedItem包含内部空格,您也可以使用
DequeuedItem
DequeuedItemF1=$(echo $DequeuedItem | cut -d\ -f1)
但第一个选项更清晰,更健壮。(请注意,反斜杠后面有两个空格。反斜杠转义第一个空格,成为 的分隔符cut,第二个空格将-d选项与-f选项隔开。令人困惑,更有理由使用另一个选项!)
cut
-d
-f