2013-10-09 5 views

답변

1

당신은 사용할 수 있습니다 TR :

tr ' ,' '\0\n' file 

또는 GNU-나오지 :

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

또는 GNU AWK : 당신의 "입력"에서

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

나는 grep을 제안하지 않았다는 것에 놀랐습니다. – devnull

+0

@devnull : lol :) 나도 놀랐다. 나는 그것을 어떻게 놓쳤는가! – anubhava

+0

당신이하지 않았으므로, 나는 하나 추가했습니다. – devnull

0

그것이 ID가 공 i이나 공 i W 쉼표 N 구분되어 있는지 확실하지 않습니다. 후자가 사실이라면, 당신은 아마 모두 처리해야합니다

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

(당신은 아마 그것을 위해 awk를 사용하여 더 나을 수도 있지만 당신은 그 과도한 빈 줄을 제거 uniq이 필요합니다) :

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

덕분에 두 번째 도움이되었습니다. – user2836170

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 

... 또는 단지 2 열 거기의 :

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

2 열뿐 아니라 6 ~ 7 열 및 많은 행 – user2836170

+0

@ user2836170 - 두 번째 awk 접근 방법 시도 –

1

사용 grep :

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