我得到包含这两个数据文件(带有逗号和引号),
,"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-z
A-Z
(注意尾随空格,因此也排除空格) 将这些字符保留为匹配号 1(命令的搜索部分中第一个也是唯一的括号内的内容s
,因此\1
在替换部分中表示为)并用\U
相同的 => 大写版本替换它们。