【发布时间】:2021-11-22 11:08:41
【问题描述】:
我有一个场景,我想将等于 = 之后的 digit or string 替换为 null [空白]
不创建新文件需要在同一个文件中替换
文件中的数据:
name=vilas
age=21
code=1345
需要将code=1345后面的数字替换为code=
我试过了,但是卡住了
sed -i 's/^code=$/code=/1g' file.txt
注意:code= 之后的值将是动态的,需要使用我不擅长的正则表达式模式匹配
【问题讨论】:
-
sed -i创建了一个新文件,所以它不满足您的要求。 -
一般来说,实际上替换文件中的数据是个坏主意。如果你真的想这样做,你可以这样做:
sed 's/^code=.*/code=/' file.txt > /tmp/file; cat /tmp/file > file.txt; rm /tmp/file。sed -i可能满足您的实际需求,但它正在创建一个新文件(并将其命名为原始文件的名称),而不是编辑原始文件。