$DequeuedItem という名前の bash スクリプト変数のフィールドを抽出したいと考えています。フィールドはタブ区切りです。
次の文で試しました。
DequeuedItemF1=$(echo $DequeuedItem | cut -f1)
しかし、DequeuedItemF1 は $DequeuedItem 全体を取得し、タブが通常のスペースになるようです。ストリームがカット コマンドに到達する前に、エコー コマンドはタブの変換を行っていますか?
引用符で囲まれていない変数の場合echo
、タブはスペースに変更されます。二重引用符はタブを保持します:
DequeuedItemF1=$(echo "$DequeuedItem" | cut -f1)
DequeuedItem
に内部スペースが含まれていない場合は、次を使用することもできます
DequeuedItemF1=$(echo $DequeuedItem | cut -d\ -f1)
ただし、最初のオプションはより明確で堅牢です。(バックスラッシュの後に 2 つのスペースがあることに注意してください。バックスラッシュは最初のスペースをエスケープし、これが の区切り文字にcut
なり、2 番目のスペースは-d
オプションとオプションを分離し-f
ます。紛らわしく、他の選択肢を使用するより多くの理由があります!)