如何在bash中使用cut命令显示除指示之外的所有列?

时间:2013-03-12 05:00:20

标签: 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

如何删除带有剪切的第一列并在bash中获取以下文本?:

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

提前致谢

4 个答案:

答案 0 :(得分:46)

使用cut

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

应该做你想做的事。

答案 1 :(得分:15)

使用infile作为分隔符(' ')阅读-d并将字段(-f)2向前(2-)放入file }:

cut -d' ' -f2- infile > file

有关更多选项,请参阅man cut

N.B:这不是具体的。

答案 2 :(得分:9)

GNU coreutils cut支持--complement标志。因此,如果您使用的是该版本的剪切,您可以说:

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

答案 3 :(得分:1)

这是一个有效的命令,比所有人都短一点:

cut -b 4- input-file

-b代表字节,并选择将粘贴到屏幕的字节。

4-是-b的一部分,它意味着它将选择每行的第4个字符到每行的最后一个字符。然后,剪切命令会将选择粘贴到屏幕上。