Board logo

标题: [其他] 请教 在批处理中使用 sed awk 代码 的技巧 [打印本页]

作者: newswan    时间: 2021-10-9 13:24     标题: 请教 在批处理中使用 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 脚本文件  运行正常,但是要多个文件,也不方便




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2