繁体   English   中英

如何使用linux终端在每行中打印每个单词?

[英]how to print each word in each line using linux terminal?

假设有一个这样的文件。.(6个ID)

k0012, k0013

k40035, k3089

Glc, 3-PGA

我想使用linux终端在每一行中打印每个ID。 提前致谢

您可以使用tr:

tr ' ,' '\0\n' file

或gnu-sed:

sed 's/, */\n/g' <file

或gnu awk:

awk -F, '{print $1}' RS='[[:space:]]+' file

使用grep

$ grep -oP "\b[^\s,]*\b" inputfile
k0012
k0013
k40035
k3089
Glc
3-PGA

从您的“输入”中,尚不清楚ID是由空格还是由空格和逗号分隔。 如果后者是正确的,那么您可能需要同时处理以下两者:

tr ' ,' '\n\n' < myfile | uniq

(您需要使用uniq删除那些多余的空行,尽管使用awk可能会更好一些):

tr ' ,' '\n\n' < myfile | awk 'NF > 0'

你在追吗 使用此输入: (6 Ids) k0012, k0013 k40035, k3089 Glc, 3-PGA

$ awk -F'[, ]*' '{for(i=3;i<=NF;i++)print $i}' input
k0012
k0013
k40035
k3089
Glc
3-PGA

如果输入是:

k0012, k0013

k40035, k3089

Glc, 3-PGA

尝试:

$ awk -F'[, ]*' '{for(i=1;i<=NF;i++)print $i}' input
k0012
k0013
k40035
k3089
Glc
3-PGA

...或者只有两列:

awk -F'[, ]*' '{printf("%s\n%s", $1, $2)}' input

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM