sed 和引号

sed 和引号

我得到包含这两个数据文件(带有逗号和引号),
,"ncal",
,"NCAL",
我想,"ncal",,"NCAL",

但是,我想不管它
,"Med Ofc Adm-Clncal Suppt Svcs",
(下游进程区分大小写。)

我尝试了以下两种方法:

sed -i 's/%ncal%/%NCAL%/g' /data/userinfo.csv

sed -i 's/\”ncal\”/\”NCAL\”/g' /data/userinfo.csv

我遗漏了什么?非常感谢您的帮助。

答案1

可能:
sed -re 's/([^a-zA-Z ]ncal[^a-zA-Z ])/\U\1/g' /data/userinfo.csv

没有可用的测试数据

功能:
找出norncal中前后字符不为 的位置,a-zA-Z(注意尾随空格,因此也排除空格) 将这些字符保留为匹配号 1(命令的搜索部分中第一个也是唯一的括号内的内容s,因此\1在替换部分中表示为)并用\U相​​同的 => 大写版本替换它们。

相关内容