我有一个文本文件,我需要删除每一行中等号之前的所有字符,例如:
线路:
File 1515 = foo.txt
Run Code Online (Sandbox Code Playgroud)
需要看起来像这样:
=foo.txt
Run Code Online (Sandbox Code Playgroud)
我试过这个sed
命令:
sed s/=[^=]*^// everyone.pls
Run Code Online (Sandbox Code Playgroud)
但它会删除等号后面的所有字符。
如何删除之前的字符=
?
删除第一个等号之前的所有内容:
sed 's/^[^=]*=/=/' everyone.pls
Run Code Online (Sandbox Code Playgroud)
如果文件everyone.pls
看起来像:
$ cat everyone.pls
File 1515 = foo.txt
File 1516 = foo=.xls
Run Code Online (Sandbox Code Playgroud)
上面的命令产生:
$ sed 's/^[^=]*=/=/' everyone.pls
= foo.txt
= foo=.xls
Run Code Online (Sandbox Code Playgroud)
在 regex 中^[^=]*=/
,前导插入符意味着 regex 必须从行首开始匹配。该表达式[^=]*=
匹配直到并包括第一个等号的每个字符。因为我们想要输出中的等号,所以我们需要用等号代替所有这些。