다음과 같은 파일이 있습니다.
elephant
kangaroo, snake, zebra
baboon
parrot, eagle, owl
...
...
각 행에 하나의 요소만 있도록 이 목록을 변경하고 싶습니다.
elephant
kangaroo
snake
zebra
baboon
parrot
eagle
owl
...
...
awk에서 이 작업을 수행할 수 있는 방법이 있나요?
감사해요
답변1
이는 다양한 도구를 사용하여 쉽게 수행할 수 있습니다. 귀하 의 입력에 따라 모든 ,
것을 \n
.tr
$ tr ',' '\n' < file
elephant
kangaroo
snake
zebra
baboon
parrot
eagle
owl
이로 인해 추가 공간이 남지만.
awk
(GNU ) 에서는 awk
다음과 같이 할 수 있습니다:
$ awk '{gsub(", ","\n");}1' file
elephant
kangaroo
snake
zebra
baboon
parrot
eagle
owl
GNU에서 sed
:
$ sed 's/, /\n/g' file
elephant
kangaroo
snake
zebra
baboon
parrot
eagle
owl
펄에서는:
$ perl -pe 's/, /\n/g' file
elephant
kangaroo
snake
zebra
baboon
parrot
eagle
owl
답변2
awk
해결책을 찾는 데 관심이 있으십니까 ? sed
예를 들어 다음과 같이 하면 쉽습니다.
$ cat foo
elephant
kangaroo, snake, zebra
baboon
parrot, eagle, owl
$ sed -e 's/, */\
/g' < foo
elephant
kangaroo
snake
zebra
baboon
parrot
eagle
owl
답변3
Python을 사용하여 완료:
#!/usr/bin/python
import re
k=open('p.txt','r')
for i in k:
print re.sub(",","\n",i).strip().replace(" ","")
산출
elephant
kangaroo
snake
zebra
baboon
parrot
eagle
owl