在 vi 中搜索和替换(TAB & SPACE & 换行)

search and replace in vi (woth TAB & SPACE & new line)

我有一个文件,想进行搜索和替换 – 如图所示

My_name group_1 \ (TAB)(SPACE)

(TAB)(SPACE) -class { student_1 }

My_name group_2 \ (TAB)(SPACE)

(TAB)(SPACE) -class { student_1 }

My_name group_3 \ (TAB)(SPACE)

(制表符)(SPACE) -class { student_3 }

请注意-在'-class'之前有TAB和SPACE

我正在使用 vi。从上面的字符串想做这样的事情 –

My_name group_1 -class { student_1 }

My_name group_2 -class { student_1 }

My_name group_3 -class { student_3 }

我尝试搜索并替换为 :%s,选择了整个文件并执行了 - :s/..

但是没有成功。你能帮帮我吗?

首先使用以下命令将所有选项卡替换为单个 space:

1,$s/\t/ /g

接下来,搜索两个 space 后跟一个换行符并将其删除。

1,$s/  \n//g

如果还有尾随 space,您可以通过以下方式删除它们:

s/ \{2,}/ /g

最后一个命令将用单个 space 替换 2 个或更多 space。