이런 파일이 가정 .. (6 IDS)리눅스 터미널을 사용하여 각 줄마다 각 단어를 출력하는 방법은 무엇입니까?
k0012, k0013
k40035, k3089
Glc, 3-PGA
I 리눅스 단말기를 이용하여 각 행에 각각의 ID를 인쇄 할. 사전에 감사
이런 파일이 가정 .. (6 IDS)리눅스 터미널을 사용하여 각 줄마다 각 단어를 출력하는 방법은 무엇입니까?
k0012, k0013
k40035, k3089
Glc, 3-PGA
I 리눅스 단말기를 이용하여 각 행에 각각의 ID를 인쇄 할. 사전에 감사
당신은 사용할 수 있습니다 TR :
tr ' ,' '\0\n' file
또는 GNU-나오지 :
이sed 's/, */\n/g' <file
또는 GNU AWK : 당신의 "입력"에서
awk -F, '{print $1}' RS='[[:space:]]+' file
그것이 ID가 공 i이나 공 i W 쉼표 N 구분되어 있는지 확실하지 않습니다. 후자가 사실이라면, 당신은 아마 모두 처리해야합니다
이tr ' ,' '\n\n' < myfile | uniq
(당신은 아마 그것을 위해 awk
를 사용하여 더 나을 수도 있지만 당신은 그 과도한 빈 줄을 제거 uniq
이 필요합니다) :
tr ' ,' '\n\n' < myfile | awk 'NF > 0'
덕분에 두 번째 도움이되었습니다. – user2836170
이 후입니까? 이 입력 사용 : (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
2 열뿐 아니라 6 ~ 7 열 및 많은 행 – user2836170
@ user2836170 - 두 번째 awk 접근 방법 시도 –
사용 grep
:
$ grep -oP "\b[^\s,]*\b" inputfile
k0012
k0013
k40035
k3089
Glc
3-PGA
나는 grep을 제안하지 않았다는 것에 놀랐습니다. – devnull
@devnull : lol :) 나도 놀랐다. 나는 그것을 어떻게 놓쳤는가! – anubhava
당신이하지 않았으므로, 나는 하나 추가했습니다. – devnull