21

当我使用命令时,有一个分隔符为制表符的文件

cut -d \t file.txt  #or  "\t"  or  "\\t"

我收到这条消息

cut:必须指定字节、字符或字段的列表

尝试使用“cut --help”获取更多信息。

如何使用cut 命令?

4

3 回答 3

32

Cut 在给定的分隔符处拆分输入行(-d,--delimiter)。

要按制表符拆分,请省略 -d 选项,因为按制表符拆分是默认设置。

通过使用 -f (--fields) 选项,您可以指定您感兴趣的字段。

echo -e "a\tb\tc" |cut -f 1 # outputs "a"
echo -e "a\tb\tc" |cut -f 2 # outputs "b"
echo -e "a\tb\tc" |cut -f 3 # outputs "c"
echo -e "a\tb\tc" |cut -f 1,3 # outputs "a\tc"
echo -e "a\tb\tc\td\te" |cut -f 2-4 # outputs "b\tc\td"

您还可以指定输出分隔符(--output-delimiter)并去掉不包含任何分隔符的行(-s/--only-delimited)

echo -e "a\tb\tc\td\te" |cut -f 2-4 --output-delimiter=":" # outputs b:c:d

如果您对输入文件的第一个字段感兴趣,只需...

cut -f 1 file.txt
于 2013-01-28T02:52:48.373 回答
17

默认分隔符是 '\t' 所以你只需要执行:

cut -f <n> file.txt

<n>列号在哪里

于 2013-01-28T02:50:06.650 回答
2

如果先按“ v”,然后按“”键,可以尝试在引号之间放置一个制表符

eg  cat > test.txt 
a    b     c
<ctrl d>

$ grep test.txt | cut -f 2 -d "<ctrl v> <presstab>"

将返回“b”

于 2013-01-28T09:55:03.320 回答