流编辑器sed学习
在linux shell中见到如下语法,记录一下
variant=`on -p254 gwm_cfg_tool -r PROJECT_CODE | sed 's/[^0-9]//g'`
on -p254 gwm_cfg_tool -r PROJECT_CODE得到的输出为PROJECT_CODE = [104]
variant得到的结果为104,sed的作用是将输出中不为数字0~9的字符转换成空字符
此外将window的sh拷贝到qnx系统中时,sh无法运行,输入了如下指令解决
sed -i 's/\r//' ipcstart.sh,sed的作用是将sh中的软空格替换为空字符,替换后运行正常
了解了一下流编辑器
基本语法:
sed [-nefri 参数] [function] [filePath]
-n:不会输出默认打印信息,除非子命令中特别指定打印 p 选项,则只会把匹配修改的行进行打印
-e:执行多条子命令
-f: 执行文件脚本
-r: 支持延伸型正则表达式
-i:直接修改读取的文件内容
用法:
1.替换 使用s命令进行文本替换
sed -i 's/newSrc/oriSrc/g' test.txt , g表示全部替换,也可用2等,表示第几次匹配替换
也可指定行数 sed -i '2,$ snewSrc/oriSrc/g' test.txt 表示2到最后一行的替换
2.删除行 d命令 sed -i '/lcl/ d' test.txt //直接字符为匹配,删除
正则表达式
1. 行首符 ^ 行尾符$ sed -n ' /^3/p' test.txt 打印行首为3行
2.匹配字符集合[] echo -e "dkdkgkfdsgkdfk\nt4\n223\n243\n54431dfwfdg" | sed -n '/[24]3/p'
3.独有集[^]
4.字符范围 [-]