[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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 脚本文件  运行正常,但是要多个文件,也不方便

返回列表