gpt4 book ai didi

linux - 如何使用 sed 或 awk 将行分隔符更改为 CSV

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:52 29 4
gpt4 key购买 nike

是否可以有如下数据集:

| asn-query: 
| BGP: 8.8.8.0/24 | Country: US
| Origin AS: 15169 - GOOGLE - Google Inc., US
| Peer AS: 1103 1239 2381 3257 6453

要转换成这个结构,使用sed\awk

asn-query, BGP: 8.8.8.0/24,  Country: US, Origin AS: 15169 - GOOGLE - Google Inc., US, Peer AS: 1103 1239 2381 3257 6453

最佳答案

如果您的文件包含多个上述文本 block ,例如,如果您的文件包含:

| asn-query: 
| BGP: 8.8.8.0/24 | Country: US
| Origin AS: 15169 - GOOGLE - Google Inc., US
| Peer AS: 1103 1239 2381 3257 6453
| asn-query:
| BGP: 2.2.2.0/24 | Country: XX
| Origin AS: 11111 - XXXXX - YYYYY Inc., US
| Peer AS: 1212 1313 1414 1515 1616

您可以使用 paste 实用程序将每 4 行连接到 1 行,例如

paste - - - - < the_above_file.txt

将产生两行:

| asn-query:    | BGP: 8.8.8.0/24 | Country: US |   Origin AS: 15169 - GOOGLE - Google Inc., US |    Peer AS: 1103 1239 2381 3257 6453
| asn-query: | BGP: 2.2.2.0/24 | Country: XX | Origin AS: 11111 - XXXXX - YYYYY Inc., US | Peer AS: 1212 1313 1414 1515 1616

并且可以根据需要修改每一行,例如:

paste  - - - - < asn.txt | sed 's/\|[[:blank:]]*//;s/://;s/[[:blank:]]*\|[[:blank:]]*/,/g'

将产生:

asn-query,BGP: 8.8.8.0/24,Country: US,Origin AS: 15169 - GOOGLE - Google Inc., US,Peer AS: 1103 1239 2381 3257 6453
asn-query,BGP: 2.2.2.0/24,Country: XX,Origin AS: 11111 - XXXXX - YYYYY Inc., US,Peer AS: 1212 1313 1414 1515 1616

同样使用 perl(并解释)

paste  - - - - < asn  |  perl -plE 's/\|\s*//; s/://; s/\s*\|\s*/,/g'
^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^
^ ^ ^
replace the 1st |+spaces with nothing--+ | |
| |
replace the 1st : with nothing ------------------+ |
|
replace all spaces + | + spaces with , -------------------+

关于linux - 如何使用 sed 或 awk 将行分隔符更改为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37256272/

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