重复第一个单词并按标签分隔

时间:2014-12-30 02:31:03

标签: unix replace awk

我有一个描述细菌性繁殖的文件:

Yersinia aldovae       1
Yersinia frederiksenii  1
Yersinia pestis 2
Zymomonas mobilis   1

我想制作一个新专栏来保留细菌名称的第一个字,例如:

Yersinia   Yersinia aldovae    1
Yersinia   Yersinia frederiksenii   1
Yersinia   Yersinia pestis  2
Zymomonas   Zymomonas mobilis   1

有人可以告诉我如何使用sed或awk来完成这项工作吗?谢谢!

4 个答案:

答案 0 :(得分:4)

使用

awk '{ print $1 "\t" $0 }' file

或者也许:

awk -v OFS="\t" '{ print $1, $0 }' file

使用

sed 's/\([^ ]*\) .*/\1\t&/' file

或:

sed 's/[^ ]*/&\t&/' file

答案 1 :(得分:2)

您可以使用awk:

awk '{print $1 "\t" $0}' source_file > dest_file

答案 2 :(得分:2)

使用 awk

awk '$0=$1"\t"$0' File

"line"更改为"first column", tab & "line"

使用 sed

sed -r 's/(\S+).*/\1\t&/' File

(\S+) => 1个或多个非空格字符,这将是第一个单词。将整行更改为"first word", tab and the line itself (&)

答案 3 :(得分:1)

打印第一列和整行。

awk '{printf("%s\t%s\n", $1, $0)}' filename > new_filename