我有一个ip地址的csv(大)文件,并希望在bash中转换为单行ip地址。
aa.bb.cc.dd,aa.bb.cc.dd,aa.bb.cc.dd,..
成
aa.bb.cc.dd
aa.bb.cc.dd
aa.bb.cc.dd
[..]
有问题的ips列表,
答案 0 :(得分:12)
cat file | tr ',' '\n' > fixed.txt
tr进行简单的字符翻译(还有更多,但这就是它在这里所做的)。这只是将所有逗号转换为换行符。
答案 1 :(得分:5)
tr ',' '\n' < inputfile > outputfile
对于从左到右的狗人:
< inputfile tr ',' '\n' > outputfile
答案 2 :(得分:2)
在bash中你可以使用while循环:
while read -d, ip;
do echo $ip;
done <file.csv >output
在awk中,您可以用更少的时间获得相同的结果:
awk -v RS=, '$1' file.csv >output
答案 3 :(得分:1)
假设您的服务器上没有该文件,这将在一行中为您完成所有工作:
curl http://www.stopforumspam.com/downloads/bannedips.zip | gunzip -c | sed s/,/\\n/g > bannedips.txt
You can't use unzip for this,如果你想让它飞过水管。
感谢Dennis的建议!