gpt4 book ai didi

java - 完全传递值生成

转载 作者:行者123 更新时间:2023-12-02 02:19:45 25 4
gpt4 key购买 nike

我正在尝试将双向同义词应用于 CSV 文件中的输入数据

示例输入:

Col A,Col B
sleep tightxjump highxjump low,Two-way
shell scriptxawk script,One-way
oops langxstructure lang,Two-way

预期输出:

Col A.     
sleep tight=>jump high,jump low
jump high=>sleep tight,jump low
jump low=>jump high,sleep tight
shell script=>awk script
oops lang=>structure lang
structure lang=>oops lang

理想情况下,如果是双向的,那么应该存在完整的传递关系。

我已经尝试使用 awk 和 shell 但无法让它工作。任何指示将不胜感激。

PS:如果在 java 上提供任何可用的指针也会有帮助

最佳答案

这可能对你有用(GNU sed):

sed -r '1s/ \..*//p;/One-way/{s/ \..*//;s/x/=>/;s/x/,/;b};/Two-way/{s/ \..*//;s/(.*)x(.*)x(.*)/\1=>\2,\3\n\2=>\1,\3\n\3=>\1,\2/;b};d' file

这使用分组和反向引用来定制输出以达到所需的结果。当然,第二列可能有更多值,并且需要以与双向类似的方式进行硬编码。

数据变化如下:

sed -r '1s/\..*//;t;/One-way/{s/\s+\S+$//;s/x/=>/;s/x/,/g;b};/\n/{/^([^x]*x).*\n\1/d;bb};/Two-way/{s/\s+\S+$//;s/.*/&\n&/;:b;s/^([^x]*)x(.*)\n/&\2x\1\n/;s/x/=>/;:a;ta;s/x(.*\n.*\n)/,\1/;ta;P;D}' file

如上第 1 行和单向Two-way 进行复制并循环使用 x 分隔值,直至重复,此时它会删除模式空间中的值。

关于java - 完全传递值生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48680668/

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