我有一千个txt文件
1.txt
2.txt
3.txt
在每个文件中,我的文本中有几次标记:
{somethinghere...blablabla} than the text I want to keep than again {somethinghere...blablabla}
我在mac osx命令行中不是很实用,有人可以帮我写一个命令打开每个文件,解析它,并删除两个包含的所有文本&#34; {&#34;?< / p>
要明确:
首先,我需要打开每个文件,而不是解析文本。当循环找到&#34; {&#34;它开始删除,直到找到一个&#34;}&#34;。完成解析后,它会保存并关闭文件。这就是我需要做的事情。
感谢
答案 0 :(得分:1)
$ sed -i.bak -e 's@{[^}]*}@@g' *.txt
-i.bak
制作每个修改过的文件的备份副本。如果您不想备份,请在OsX上使用-i''
(Linux上不需要引号)/
之外的另一个字符,在此我选择@
,因此:s@<REGEX>@<REMPLACEMENT>@
(替换的基本形式为s///
){
搜索文字}
以及所有[^}]
。 *
表示0或更多次出现。最后,我们搜索结束}
,我们将没有任何内容替换匹配的部分,因此删除匹配的部分g
修饰符@the end不仅意味着一个匹配,而且意味着所有