catの出力をパイプに切断する方法

catの出力をパイプに切断する方法

Bashスクリプトをcat /proc/uptime開始したいです。cut -f1

私は努力しました。

cat /proc/uptime | cut -f1
cat /proc/uptime > cut -f1
cut -f1 < cat /proc/uptime

これを達成するには、echoまたは他のものを使用する必要がありますか?

答え1

デフォルトのフィールド区切り記号cutはタブです。ファイルにスペースがあるため、区切り文字を指定する必要があります。

-d ' '

catそして実際にパイプをまったく使う必要はありません。ファイルを直接読んでください。

cut -f 1 -d ' ' /proc/uptime

答え2

cat /proc/uptime | cut -f1 -d' '

はい正しい

< /proc/uptime  cut -f1 -d' '

はい正しいそしてパイプを作成せずに直接読み取るので、より効率的です/proc/uptime(ここでは重要ではありません)。

通常、フォーラムでは2番目の形式を使用することをお勧めします。そうでなければ、「猫は役に立たない」と叫んだ後、純粋主義者に会うでしょう。


cut -f1 -d' ' < cat /proc/uptime

はい間違った。それは同じです

cut -f1 -d' ' /proc/uptime < cat

Bashを使用している場合は、次のものも使用できます<()

cut -f1 -d' ' < <(cat /proc/uptime)

これにより、読み取り用の匿名の名前付きパイプが生成され、出力がcat /proc/uptimeパイプに接続されます。しかし、繰り返しますが、猫を使用することは役に立ちません。

これに加えて、cutファイルパラメータも使用できるため、すべてのリダイレクトバージョンは次のことなく動作します<(効率性の点では重要ではありません)。

cut -f1 -d' '/proc/uptime

または <() パイプを使用します。

cut -f1 -d' ' <(cat /proc/uptime)

答え3

デフォルトでは、カッティング区切り文字はTABであり、スペースに変更できます。

cat /proc/uptime | cut -f1 -d " " 

この場合、awkを使用することをお勧めします。

cat /proc/uptime | awk '{print$1}' 

関連情報