web-dev-qa-db-ja.com

bashでcutコマンドを使用して、示されている列以外のすべての列を表示するにはどうすればよいですか?

プレーンテキストファイルから列を削除する必要があります。これは、cutコマンドの逆を使用して実行できると思います。つまり、次のようなものです。

これが私のファイルの場合:

01 Procedimiento_tal retiro aceptado
01 tx1
01 tx2
01 tx3
02 Procedimiento_tal retiro rechazado
02 tx1
02 tx2
02 tx3
03 Procedimiento_tal retiro aceptado
03 tx1
03 tx2
03 tx3

Cutで最初の列を削除し、bashで次のテキストを取得するにはどうすればよいですか?

Procedimiento_tal retiro aceptado
tx1
tx2
tx3
Procedimiento_tal retiro rechazado
tx1
tx2
tx3
Procedimiento_tal retiro aceptado
tx1
tx2
tx3

前もって感謝します

23
Herman

cutを使用:

cut -d ' ' -f 2- input-file

あなたがしたいことをする必要があります。

46
William Pursell

' 'を区切り文字(-d)として使用してinfileを読み取り、フィールド(-f)を2つ以上(2-)をfileに入れるには:

cut -d' ' -f2- infile > file

その他のオプションについては、 man cut を参照してください。

N.B:これは bash -specificではありません。

15
Johnsyweb

GNU coreutils cutは、--complementフラグをサポートしています。したがって、そのバージョンのcutを使用している場合、次のように言うことができます。

cut --complement -d' ' -f1 infile

出力:

Procedimiento_tal retiro aceptado
tx1
tx2
tx3
Procedimiento_tal retiro rechazado
tx1
tx2
tx3
Procedimiento_tal retiro aceptado
tx1
tx2
tx3
9
Thor

動作するコマンドを次に示します。これは、全員のコマンドよりも少し短くなっています。

cut -b 4- input-file

-bはバイトを表し、画面に貼り付けるバイトを選択します。

4-は-bの一部であり、すべての行の4番目の文字からすべての行の最後の文字までを選択することを意味します。切り取りコマンドは、選択を画面に貼り付けます。

1
Flare Cat