,
任何人都知道如何使用 Vim 在文件中删除所有空格并用逗号替换它们?文件输入示例(单词可能无处不在!):
C1 TEST PROD
A1 BE
T1 B1
文件输出示例(属于同一行的所有单词如下例所示):
C1,TEST,PROD
A1,BE
T1,B1
我找到了:
%s/\s\{1,}/,/gc
,
任何人都知道如何使用 Vim 在文件中删除所有空格并用逗号替换它们?文件输入示例(单词可能无处不在!):
C1 TEST PROD
A1 BE
T1 B1
文件输出示例(属于同一行的所有单词如下例所示):
C1,TEST,PROD
A1,BE
T1,B1
我找到了:
%s/\s\{1,}/,/gc
首先删除空行:
:g/^\s*$/d
然后:s///
在每行 ( %
) 上使用替换 ( ) 将所有 ( g
) 连续空格 ( \s\+
) 替换为逗号 ( ,
)。
:%s/\s\+/,/g
另一种方法:
%s/\s\{1,}/,/gc
当转换带有标题的文本文件和带有空格的文本字段时,我使用了%s/\s\{2,}/,/g
如果文件包含 n 行,并且在每行的开头、每行的结尾和中间包含空格。并且您想删除开头和结尾的空格,并用逗号“,”替换多个空格之间的空格。并且还重定向输出并保存到一个新文件,保持原始文件不变。
使用以下命令 -
sed -e 's/^[ \t]*// ; s/[[:blank:]]*$// ; s/\s\+/,/g ; s/,$//' input-file-name | tee output-file-name
如果不在同一目录中,则给出输入文件名的路径。
或者你可以写下所有这些——
"s/^[ \t]*//
s/[[:blank:]]*$//
s/\s\+/,/g ; s/,$//"
在一个txt文件中保存它。并使用 -f 选项。
所以命令变成 -
sed -f commands.txt input-file-name.txt | tee output-file-name.txt
commnads.txt 包含 sed 命令的上述条件