37

我需要从纯文本文件中删除一列。我认为这可以使用 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

提前致谢

4

4 回答 4

64

使用cut

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

应该做你想做的。

于 2013-03-12T05:04:19.820 回答
19

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

cut -d' ' -f2- infile > file

查看man cut更多选项。

注意:这不是特定的。

于 2013-03-12T05:07:55.650 回答
15

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
于 2013-04-05T12:09:12.940 回答
1

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

cut -b 4- input-file

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

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

于 2015-01-03T14:50:39.857 回答