标题: sed 文本流处理后的结果存入变量 [打印本页]
作者: 极品小猫 时间: 2021-4-22 14:36 标题: sed 文本流处理后的结果存入变量
想要把 sed 的处理结果存入变量
但是 for 在 echo 遇到特殊字符的时候就会崩,不使用临时文件有更好的处理方案吗?
或者其它命令也可以- for /f "" %%i in ('echo (123) ^| sed -R"s/^.+([\w -]+).+/\1/"') do (
- set a=%%i
- )
复制代码
作者: 极品小猫 时间: 2021-4-22 14:51
啊~发错版块了,这是Bat问题,麻烦删帖
作者: 极品小猫 时间: 2021-4-22 14:56 标题: sed 文本流处理后的结果存入变量
想要把 sed 的处理结果存入变量
但是 for 在 echo 遇到特殊字符的时候就会崩,不使用临时文件有更好的处理方案吗?
或者其它命令也可以- for /f "" %%i in ('echo (123) ^| sed -R"s/^.+([\w -]+).+/\1/"') do (
- set a=%%i
- )
复制代码
作者: cutebe 时间: 2021-4-22 15:33
echo str ::str外加引号括起即可:"str"- for /f "" %%i in ('echo "(123)" ^| sed -r "s/^.+([\w -]+).+/\1/"') do set a=%%i
复制代码
一般没有出现单数双引号都是可以的!
作者: 极品小猫 时间: 2021-4-23 10:21
回复 2# cutebe
试过加双引号,但是遇到更多各种怪异问题
首先输出的文本串是 带有双引号的,这样在 sed 处理的时候就需要考虑这个双引号的问题- sed -r "s/\"([\w ]+).+/\1/"'
复制代码
在命令行中,该怎么对这个开头为双引号的内容进行识别呢?- for /f "delims=" %%i in ('echo "PDF Shaper(PDF工具箱)" ^| sed -r "s/\b*([\w ]+).+/\1/"') do echo %%i
复制代码
另外就上述例子中,如何提取到 PDF Shaper,实测输出得到的是 "PDF
作者: cutebe 时间: 2021-4-23 11:34
本帖最后由 cutebe 于 2021-4-23 12:15 编辑
去除开头引号:
法一 sed:sed "s/.str1/str2/" :: 。点取单个字符
法二 批处理:%%~i ::去除外围引号- for /f "delims=" %%i in ('echo "PDF Shaper(PDF工具箱)" ^| sed -r "s/.([a-zA-Z ]+).+/\1/"') do echo (%%i)
- for /f "delims=" %%i in ('echo "PDF Shaper(PDF工具箱)" ^| sed -r "s/([a-zA-Z ]+).+/\1/"') do echo {%%~i}
- for /f "delims=" %%i in ('echo "PDF Shaper(PDF工具箱)" ^| sed -r "s/((\w ?)+).+/\1/"') do echo [%%~i]
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |