使用 space 拆分制表符分隔的列
Split tab delimited column with space
我在点击详细信息文件 (clickInfo.txt) 中有以下数据,其中有 3 列由制表符分隔。
第一列代表计数和产品编号,由 space.
分隔
101 111 productXyz keyword1
57 111 productXyz keyword2
12 222 product ABC12 keyword3
我使用以下 awk 命令提取了第 1、2、3 列列
awk -F'\t' '{print }' clicksInfo.txt
从第一列开始,我只想要计数而不是产品 ID,如下所示:
101 productXyz keyword1
57 productXyz keyword2
12 product ABC12 keyword3
那么如何以space作为分隔符拆分列(制表符分隔)?
@Gunjan:@try:虽然你的问题不是很清楚,但考虑到你只需要获取第一列,那么为什么不只打印 $1。此外,如果使用 space 默认分隔符本身,我们可以完成任务,但不确定为什么有必要将制表符作为分隔符。
awk '{print }' Input_file
您可以使用 space
再次 split
第 1 列并打印它的第一部分,尝试:
awk -F'\t' '{split(, c, " "); print c[1] "\t" "\t" }' clicksInfo.txt
只需将第一个字段 (</code>) 中的 space 及其后的所有内容(如果有的话)替换为 <code>""
:
$ awk 'BEGIN{FS=OFS="\t"}{sub(/ .*/,"",)}1' foo
101 productXyz keyword1
57 productXyz keyword2
12 product ABC12 keyword3
对于 sed
,假设第一列总是有两列数字,由 space
分隔
$ sed -E 's/ *[0-9]+[ \t]*/\t/2' clicksInfo.txt
101 productXyz keyword1
57 productXyz keyword2
12 product ABC12 keyword3
-E
使用 ERE,一些 sed
版本需要 -r
选项来代替
*
可选space
[0-9]+[ \t]*
一位或多位数字后跟可选的 space/tab
/\t/2
仅用 tab 替换第二次出现的情况
我在点击详细信息文件 (clickInfo.txt) 中有以下数据,其中有 3 列由制表符分隔。 第一列代表计数和产品编号,由 space.
分隔101 111 productXyz keyword1
57 111 productXyz keyword2
12 222 product ABC12 keyword3
我使用以下 awk 命令提取了第 1、2、3 列列
awk -F'\t' '{print }' clicksInfo.txt
从第一列开始,我只想要计数而不是产品 ID,如下所示:
101 productXyz keyword1
57 productXyz keyword2
12 product ABC12 keyword3
那么如何以space作为分隔符拆分列(制表符分隔)?
@Gunjan:@try:虽然你的问题不是很清楚,但考虑到你只需要获取第一列,那么为什么不只打印 $1。此外,如果使用 space 默认分隔符本身,我们可以完成任务,但不确定为什么有必要将制表符作为分隔符。
awk '{print }' Input_file
您可以使用 space
再次 split
第 1 列并打印它的第一部分,尝试:
awk -F'\t' '{split(, c, " "); print c[1] "\t" "\t" }' clicksInfo.txt
只需将第一个字段 (</code>) 中的 space 及其后的所有内容(如果有的话)替换为 <code>""
:
$ awk 'BEGIN{FS=OFS="\t"}{sub(/ .*/,"",)}1' foo
101 productXyz keyword1
57 productXyz keyword2
12 product ABC12 keyword3
对于 sed
,假设第一列总是有两列数字,由 space
$ sed -E 's/ *[0-9]+[ \t]*/\t/2' clicksInfo.txt
101 productXyz keyword1
57 productXyz keyword2
12 product ABC12 keyword3
-E
使用 ERE,一些sed
版本需要-r
选项来代替*
可选space[0-9]+[ \t]*
一位或多位数字后跟可选的 space/tab/\t/2
仅用 tab 替换第二次出现的情况