找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 11176|回复: 0

[其他] 请教 在批处理中使用 sed awk 代码 的技巧

[复制链接]
发表于 2021-10-9 13:24:05 | 显示全部楼层 |阅读模式
本帖最后由 newswan 于 2021-10-9 14:25 编辑

http://www.bathome.net/redirect.php?goto=findpost&pid=246478&ptid=60242

  1. set "_cmd_=dir /s /b %sour%\*.txt | sed -r -e "s/^.+[\]//" | sort -u"
  2. set _cmdsed_=-r -e "/%exclude%/d" -e "/^\S+\s+\S+\s+\S+$/^!d" -e "s/SH/0/" -e "s/SZ/1/" -e "s/\s+/^|/g"
  3. set _cmdawk_=" { arr[$0]++ ; if ( arr[$0] == 1 ) { print $0 } } "
  4. for /f "usebackq tokens=* delims=" %%a in (`cmd /c "%_cmd_%"`) do (
  5.     echo %%a
  6.     (
  7.         for /f "usebackq tokens=* delims=" %%b in (`dir /s /b "%sour%\%%a"`) do (
  8.             type "%%~fb"
  9.         ) | sed -r -e $a\
  10.     ) | sed !_cmdsed_! | awk !_cmdawk_! > "%dest%\%%~nxa"
  11. )
复制代码
改成
  1. for /f "usebackq tokens=* delims=" %%a in (`cmd /c "%_cmd_%"`) do (
  2.     echo %%a
  3.     (
  4.         for /f "usebackq tokens=* delims=" %%b in (`dir /s /b "%sour%\%%a"`) do (
  5.             type "%%~fb"
  6.         ) | sed !_cmdsed_!
  7.     ) | awk !_cmdawk_! > "%dest%\%%~nxa"
  8. )
复制代码
就会报错
  1. sed: -e expression #1, char 2: unknown command: `_'
复制代码
请问在批处理中使用 sed awk 代码,有什么需要避坑的?
sed/awk -f 脚本文件  运行正常,但是要多个文件,也不方便
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:05 , Processed in 0.016899 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表