gpt4 book ai didi

bash - 在 Bash 中拆分逗号分隔的字符串

转载 作者:行者123 更新时间:2023-11-29 09:07:38 24 4
gpt4 key购买 nike

我有一个包含 20k+ IP 的文件:

104.20.15.220,104.20.61.219,104.20.62.219,104.20.73.221,104.20.74.221,104.20.14.220
104.20.15.220,104.20.73.221,104.20.74.221,104.25.195.107,104.25.196.107,104.20.14.220
91.215.154.209
...

问题是如何在每个字符串上拆分成单个 IP:

104.20.15.220
104.20.61.219

最佳答案

只需使用以下任一命令将逗号替换为新行即可:

tr ',' '\n' < file

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

perl 's/,/\n/g' file

awk 'gsub(/,/,"\n")' file

... 或将每个文本 block 匹配到逗号或行尾:

grep -oP '.*?(?=,|$)' file

...或遍历字段并打印它们:

awk -F, '{for(i=1;i<=NF;i++) print $i}' file

... 或者将记录分隔符设置为逗号并让 awk 完成所有工作:

awk -v RS=, '1' file
awk 1 RS=, file

... 或匹配 IP,您可以使用来自 Matching IPv4 Addresses 的正则表达式:

grep -oE '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file

他们都返回:

104.20.15.220
104.20.61.219
104.20.62.219
104.20.73.221
...

关于bash - 在 Bash 中拆分逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39528273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com