Sed - 在字符串前删除x个字符

use*_*872 3 regex linux bash command-line sed

我有一个txt文件,我想在特定字符串之前删除x个字符

示例:

52.451878252 foo 845.851878212 foo
98.444854655 foo 458.344854656 foo
Run Code Online (Sandbox Code Playgroud)

我想在字符串'foo'之前删除8个字符,以便得到这个:

52.45 foo 845.66 foo
98.44 foo 458.66 foo
Run Code Online (Sandbox Code Playgroud)

我该如何处理sed命令(或其他)?

谢谢 :)

Sto*_*ica 7

干得好:

sed -e 's/........foo/ foo/g' file.txt
Run Code Online (Sandbox Code Playgroud)

或等效地:

sed -e 's/.\{8\}foo/ foo/g' file.txt
Run Code Online (Sandbox Code Playgroud)

甚至:

sed -e 's/.\{8\}\(foo\)/ \1/g' file.txt
Run Code Online (Sandbox Code Playgroud)

或者采用不同的方法,为您的样本输出相同的输出:

sed -e 's/[0-9]\{7\} / /g' file.txt
Run Code Online (Sandbox Code Playgroud)