bashでは、cut -fが何を意味するのかわかりません。

bashでは、cut -fが何を意味するのかわかりません。
STATUS='yes'
FOO='pretty'
BAR='purple'
for var in STATUS FOO BAR; do
#    declare -p $var | cut -d ' ' -f 3- >> variable.file
        declare -p $var >> variable.file
done

返品

declare -- STATUS="yes"
declare -- FOO="pretty"
declare -- BAR="purple"
  1. -fオプションが何を意味するのかわかりませんか?添付しないと、-f「バイト、文字、またはフィールドのリストを指定する必要がありますか?」というメッセージが表示されます。手動説明する

-f動作または表示を関数名と定義に制限する

  1. cut -d ' '3つのフィールドに分けます。declare--STATUS="yes"
  2. 2が正しい場合は、3-STATUS = "yes" FOO = "pretty" BAR = "purple"の最後のフィールドが得られます。

全体的に、point1については、結果がpoint2、point3と一致しているのでわかりませんが、私のpoint2、point3の解釈が正しいことを確認したいと思います。

答え1

cut、を使用して-f抽出するフィールドを指定します。 「フィールド」は区切り文字(あなたの場合は文字)で区切られていますSpace。それぞれはSpaceフィールドを区別するため、データに複数のSpace文字がある場合(を使用して確認od -bc your.file)によれば、複数の「フィールド」がありますcut
たとえば、他のツールはawk '{print $3} your.file「フィールド」の概念が異なります。
ちなみに、あなたのmanページ参照は、のようにスイッチからのものではありませんman cut-fこれはグローバルな意味ではありません。つまり、プログラムごとに異なる意味を持ちます。

関連情報