Jaf*_*son 0 command-line sed text-processing
我正在尝试从文件中删除特定文本。我试过使用sed:
sed 's/.*,/{/' beta.txt | head -n5
Run Code Online (Sandbox Code Playgroud)
但是没有得到预期的输出。
这是我得到的输入和输出:
{"url":"example.com","original":"ex.com","tech":"c"}
{"url":"example1.com", jkdshsjkfhdj,"dsd":"sdsd","original":"ex1.com","tech":"d"}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
{"tech":"c"}
{"tech":"d"}
Run Code Online (Sandbox Code Playgroud)
我期望的是:
{"original":"ex.com","tech":"c"}
{"original":"ex1.com","tech":"d"}
Run Code Online (Sandbox Code Playgroud)
我只是想把original它之前的一切都换成{.
我怎样才能实现它?
你没有得到你所期望的,因为正则表达式是贪婪的。匹配除逗号以外[^,]的任何字符而不是任何字符:
$ sed 's/[^,]*,/{/' beta.txt
{"original":"ex.com","tech":"c"}
{"original":"ex1.com","tech":"d"}
Run Code Online (Sandbox Code Playgroud)
但是,由于您的编辑,显然除了original明确之外,所有行上都没有一致的匹配项,所以我们必须这样做……没有多少乐趣。
sed 's/.*,"original/{"original/'
Run Code Online (Sandbox Code Playgroud)