
次のファイルがあります。
elephant
kangaroo, snake, zebra
baboon
parrot, eagle, owl
...
...
各行に1つの要素しかないようにこのリストを変更したいと思います。
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