有没有懂sed替换的?只匹配字母和数字组合,不能纯数字

92次阅读

共计 3796 个字符,预计需要花费 10 分钟才能阅读完成。

如题,我目前在用 sed -i 不开启 -r 的情况下,匹配本地文本字符串替换,具体是这样的每行 xxxxxxxxxxxx_584b284368b25bef.xxxxxxxxxxxxxxx_0000000000000000.xxxxxxxxxxxxxxx_aaaaaaaaaaaaaaaaa.xxx 我想替换只包含 字母和数字组合的部分,其他纯数字或纯字母的不替换。目前用 _[a-z0-9]\\{16\\}\\+ 把全部都替换了,我想区别替换,大佬有办法吗?whyclong 2022-11-29 16:33 2 有点难,这种我一般就写多几步,把纯数字和纯字母的挑出来,然后再替换。小朋友 2022-11-29 16:35 3whyclong 发表于 2022-11-29 16:33 有点难,这种我一般就写多几步,把纯数字和纯字母的挑出来,然后再替换 …. 我也网上搜索也找了一遍,可能我每发现到有我这需求的,我也尝试各种组合也不行,所以才来问各位大佬了 whyclong 2022-11-29 16:39 4 非纯数字 and 非纯字母 这样替换也许可以 adminisd 2022-11-29 16:43 5? 哪来的这么复杂的需求,正则匹配最难的就是没有规则 + 不修改一部分。先替换数字开头的,再替换字母开头的。具体自己想办法 shwish 2022-11-29 16:45 6 你可以变通一下,我先占个楼 小朋友 2022-11-29 16:49 7 内容最后由 小朋友 于 2022-11-29 16:51 编辑 adminisd 发表于 2022-11-29 16:43 哪来的这么复杂的需求,正则匹配最难的就是没有规则 + 不修改一部分。先替换数字开头的,再替换字母开头的 … 哎,现在去各种群请教所谓的大佬,个个说得简单,都是说先这样,先那样,就是没有给你示例。我都失望了 Bai. 2022-11-29 16:57 8 小朋友 发表于 2022-11-29 16:49 哎,现在去各种群请教所谓的大佬,个个说得简单,都是说先这样,先那样,就是没有给你示例。我都失望了 … 多分几个步骤就好了,要多不耻下问 小朋友 2022-11-29 17:05 9Bai。发表于 2022-11-29 16:57 多分几个步骤就好了,要多不耻下问也可以,我先匹到纯数字或者纯字母的打乱,让后面替换字母和数字组合无法匹配到,待字母和数字组合的替换完成,再恢复这 纯数字或者纯字母的。只是这样就不够明智简短。Bai. 2022-11-29 17:06 10n=0for   文本第 n 行 过滤匹配中间那段 如果 文本中间那段内容全相同         n=n+1         进入下个循环 否则 替换中间那段 小朋友 2022-11-29 17:07 11Bai。发表于 2022-11-29 17:06n=0for   文本第 n 行 过滤匹配中间那段只能在 sed 通过正则实现,不借助其他命令。Bai. 2022-11-29 17:08 12 小朋友 发表于 2022-11-29 17:07 只能在 sed 通过正则实现,不借助其他命令。sed 不在 Shell 中用?zxxx 2022-11-29 17:11 13 给几个替换前后的例子 小朋友 2022-11-29 17:11 14Bai。发表于 2022-11-29 17:08sed 不在 Shell 中用?我这是在 Windows 环境下,使用的 sed.exe,所以这就难办了 Bai. 2022-11-29 17:12 15 小朋友 发表于 2022-11-29 17:11 我这是在 Windows 环境下,使用的 sed.exe,所以这就难办了 VS Code 就能写 Shell 我现在用的是 pycharm 小朋友 2022-11-29 17:18 16zxxx 发表于 2022-11-29 17:11 给几个替换前后的例子使用 s/_[a-z0-9]\\{16\\}\\+\\.xml$/_\\*\\.xml/ g 替换前 oem_enterprisee_8271a346c69d7ec8.xmloem_enterprisen_8271b45cc69d6527.xmloem_enterprise_06bd438c802c0bcb.xmloem_homebasice_fc44554287d37df8.xmloem_homebasicn_fc44554287d37e01.xmloem_homebasic_fc4455430aeb6f1d.xmloem_homepremiume_91f2e97ea2ab58df.xmloem_homepremiumn_91f2e83aa2ab5bb8.xmloem_homepremium_e173f2caafc9042a.xmloem_professionale_243ffb9956e51020.xmloem_professionaln_243ffbab56e50fcf.xmloem_professional_81d121edb1d7e39d.xmloem_startere_15066a04d30039cc.xmloem_startern_150668c0d3003ca5.xmloem_starter_64cdfb00df7f33cb.xmloem_ultimatee_15e51206be38a3ca.xmloem_ultimaten_15e51218be38a379.xmloem_ultimate_3a699ee899e429e3.xml_0000000000000000.xml 复制代码替换后 oem_enterprisee_*.xmloem_enterprisen_*.xmloem_enterprise_*.xmloem_homebasice_*.xmloem_homebasicn_*.xmloem_homebasic_*.xmloem_homepremiume_*.xmloem_homepremiumn_*.xmloem_homepremium_*.xmloem_professionale_*.xmloem_professionaln_*.xmloem_professional_*.xmloem_startere_*.xmloem_startern_*.xmloem_starter_*.xmloem_ultimatee_*.xmloem_ultimaten_*.xmloem_ultimate_*.xml_*.xml 复制代码注意,原来的_0000000000000000.xml 替换成_*.xml zxxx 2022-11-29 17:21 17xxxxxxxxxxxx_584b284368b25bef.xxx -> xxxxxxxxxxxx_*.xxxxxxxxxxxxxxx_0000000000000000.xxx -> xxxxxxxxxxxx_0000000000000000.xxxxxxxxxxxxxxx_aaaaaaaaaaaaaaaaa.xxx -> xxxxxxxxxxxx_aaaaaaaaaaaaaaaaa.xxx 这样?小朋友 2022-11-29 18:16 18zxxx 发表于 2022-11-29 17:21xxxxxxxxxxxx_584b284368b25bef.xxx -> xxxxxxxxxxxx_*.xxxxxxxxxxxxxxx_0000000000000000.xxx -> xxxxxxx … 我不想替换 _0000000000000000.xxx 这种纯数字或者纯字母,只想替换这 16 个字包含字母和数字的组合 zxxx 2022-11-29 18:19 19xxxxxxxxxxxx_584b284368b25bef.xxx -> xxxxxxxxxxxx_*.xxxxxxxxxxxxxxx_0000000000000000.xxx -> xxxxxxxxxxxx_*.xxxxxxxxxxxxxxx_aaaaaaaaaaaaaaaaa.xxx -> xxxxxxxxxxxx_*.xxx_0000000000000000.xml ->_0000000000000000.xml 这样?小朋友 2022-11-29 18:20 20zxxx 发表于 2022-11-29 18:19xxxxxxxxxxxx_584b284368b25bef.xxx -> xxxxxxxxxxxx_*.xxxxxxxxxxxxxxx_0000000000000000.xxx -> xxxxxxx …xxxxxxxxxxxx_584b284368b25bef.xxx -> xxxxxxxxxxxx_*.xxxxxxxxxxxxxxx_0000000000000000.xxx -> xxxxxxxxxxxx_0000000000000000.xxxxxxxxxxxxxxx_aaaaaaaaaaaaaaaaa.xxx -> xxxxxxxxxxxx_aaaaaaaaaaaaaaaaa.xxx 这样 zxxx 2022-11-29 18:45 21 小朋友 发表于 2022-11-29 18:20xxxxxxxxxxxx_584b284368b25bef.xxx -> xxxxxxxxxxxx_*.xxxxxxxxxxxxxxx_0000000000000000.xxx -> xxxxx …sed 可能做不了 小朋友 2022-11-29 18:59 22zxxx 发表于 2022-11-29 18:45sed 可能做不了了解,我用其他方法了

正文完
 0