gpt4 book ai didi

windows - Sed 或 awk - 需要获取一个子字符串并将其附加到行尾

转载 作者:可可西里 更新时间:2023-11-01 09:55:49 24 4
gpt4 key购买 nike

我正在使用 Windows sed/awk 但 unix 命令类似,

文件1

\\FILE09\12GAGE\LOAN CLOSING UNIT;\\FILE09\12GAGE;/fs8_100X/FILE09/bu/12gage
\\FILE44\FILE44\BU\EARPS\FUNDCHECK;\\FILE44\FILE44;/fs6_451B/FILE44
\\FILE15\FILE15\BU\MICROSOFT MACRO REMEDIATION;\\FILE15\FILE15;/fs6_100X/FILE15

要求的输出:

\\FILE09\12GAGE\LOAN CLOSING UNIT;\\FILE09\12GAGE;/fs8_100X/FILE09/bu/12gage/LOAN CLOSING UNIT
\\FILE44\FILE44\BU\EARPS\FUNDCHECK;\\FILE44\FILE44;/fs6_451B/FILE44/BU/EARPS/FUNDCHECK
\\FILE15\FILE15\BU\MICROSOFT MACRO REMEDIATION;\\FILE15\FILE15;/fs6_100X/FILE15/BU/MICROSOFT MACRO REMEDIATION

我需要获取第一个字段,例如在第 4 次松弛后获取字符串:

\\FILE44\FILE44\BU\EARPS\FUNDCHECK

它将成为\BU\EARPS\FUNDCHECK,然后将反斜杠转换为斜杠:/BU/EARPS/FUNDCHECK然后将其附加到该行的末尾。

\\FILE44\FILE44\BU\EARPS\FUNDCHECK;\\FILE44\FILE44;/fs6_451B/FILE44/BU/EARPS/FUNDCHECK

最佳答案

这是使用 awk 的一种方法:

awk -F ";" '{ a = $0; sub(/^\\\\[^\\]*\\[^\\]*/,""); gsub(/\\/,"/",$1); print a $1 }' file

或者简化正则表达式:

awk -F ";" '{ a = $0; sub(/^\\(\\[^\\]*){2}/,""); gsub(/\\/,"/",$1); print a $1 }' file

结果:

\\FILE09\12GAGE\LOAN CLOSING UNIT;\\FILE09\12GAGE;/fs8_100X/FILE09/bu/12gage/LOAN CLOSING UNIT
\\FILE44\FILE44\BU\EARPS\FUNDCHECK;\\FILE44\FILE44;/fs6_451B/FILE44/BU/EARPS/FUNDCHECK
\\FILE15\FILE15\BU\MICROSOFT MACRO REMEDIATION;\\FILE15\FILE15;/fs6_100X/FILE15/BU/MICROSOFT MACRO REMEDIATION

关于windows - Sed 或 awk - 需要获取一个子字符串并将其附加到行尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13997875/

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