web-dev-qa-db-ja.com

猫からの出力をパイプでカットする方法

したい cat /proc/uptimeからcut -f1 Bashスクリプト内。

私はもう試した;

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

これを実現するには、エコーなどを使用する必要がありますか?

2
brenguy

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

-d ' '

そして、catやパイプを使用する必要はまったくありません。ファイルを直接読むだけです。

cut -f 1 -d ' ' /proc/uptime
6
Michael Hampton
_cat /proc/uptime | cut -f1 -d' '
_

正しい

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

is correctであり、パイプを作成せずに_/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)
_
2
PSkocik

デフォルトでは、カットの区切り文字はTABですが、次のように空白に変更できます

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

それらのケースでは、私はawkを使用することを好みますが:

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