Unix 重复第一个单词并按制表符分隔
我有一个描述细菌分类法的文件:Unix 重复第一个单词并按制表符分隔,unix,replace,awk,sed,Unix,Replace,Awk,Sed,我有一个描述细菌分类法的文件: 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 Zym
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来完成这项工作吗?谢谢大家! 打印第一列和整行
awk '{printf("%s\t%s\n", $1, $0)}' filename > new_filename
打印第一列和整行
awk '{printf("%s\t%s\n", $1, $0)}' filename > new_filename
与:
或许:
awk -v OFS="\t" '{ print $1, $0 }' file
与:
或:
与:
或许:
awk -v OFS="\t" '{ print $1, $0 }' file
与:
或:
您可以使用awk:
awk '{print $1 "\t" $0}' source_file > dest_file
您可以使用awk:
awk '{print $1 "\t" $0}' source_file > dest_file
使用awk:
awk '$0=$1"\t"$0' File
sed -r 's/(\S+).*/\1\t&/' File
将“行”
更改为“第一列”,选项卡和“行”
使用sedsed:
awk '$0=$1"\t"$0' File
sed -r 's/(\S+).*/\1\t&/' File
(\S+)
=>1个或多个非空格字符,它们将是第一个单词。将整行更改为“第一个单词”,并使用awk将行本身(&)更改为:
awk '$0=$1"\t"$0' File
sed -r 's/(\S+).*/\1\t&/' File
将“行”
更改为“第一列”,选项卡和“行”
使用sedsed:
awk '$0=$1"\t"$0' File
sed -r 's/(\S+).*/\1\t&/' File
(\S+)
=>1个或多个非空格字符,它们将是第一个单词。将整行更改为“first word”,并将行本身(&)
再更改一行awk'$1=$1”\t'$1'
会产生语法错误的awk'$1=$1”\t'$1'
。ITYM“{printf(“%s\t%s\n”,$1,$0)}”
但是一个简单的打印就足够了,应该会产生语法错误。ITYM“{printf(“%s\t%s\n”,$1,$0)}”
但是一个简单的打印就足够了,谢谢!这也行!谢谢!这也行!