我有一个在多个文件中调用的变量 "User": "x-73098"
,文件名如下astro_root_sys-dev.txt.
如何查找所有具有 "User": "x-73098" 变量的文件并将该变量值从 动态替换"User": "x-73098"
为"User": "sys_user"
.
用户值 (x-73098) 不会在所有文件中都相同,x- 后面的数字在许多文件中有所不同。
答案1
该sed
线性将搜索包含“unknown”的文档并用“sys_user”替换它:
sed -i 's/"unknown"/"sys_user"/g' *.txt
为了更改所有以 结尾的字符串-73098
:
如果 x 是一个数字:
sed 's/[0-9]-73098/"sys_user"/g' *.txt
如果 x 是小写字母:
sed 's/[a-z]-73098/"sys_user"/g' *.txt
如果 x 是大写字母:
sed 's/[A-Z]-73098/"sys_user"/g' *.txt
如果 x 是大写字母、小写字母或数字:
sed -i 's/[a-zA-Z0-9]-73098/User: "sys_user"/g' *.txt
答案2
尝试
for FN in astro*.txt; do sed -r 's/(User: ")x-[[:digit:]]*"/\1sys_user"/' "$FN" > /tmp/TMP$$; mv /tmp/TMP$$ "$FN"; done