基本上,我使用粘贴命令来更改文件中的回车符,但我想将结果保存到同一文件中。
paste -s -d, filename1
我无法安装海绵之类的任何工具。
如果您确实要使用该paste
命令,则必须采用这样一种方法,即在其中使用tmp
文件,然后替换原始方法(在执行此操作之前,请备份文件):
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ cat filename1
abc
123
edf
xyz
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ paste -s -d, filename1 > filename2 && mv filename2 filename1
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ cat filename1
abc,123,edf,xyz
注意:仅当paste
最终无错误时,才进行移动操作
如果允许使用其他命令,sed
则可以使用内联模式直接修改文件,而无需创建tmp文件。
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ cat filename1
abc
123
edf
xyz
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ sed -i".bak" ':loop;N;$!bloop;s/\n/,/g' filename1
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ cat filename1
abc,123,edf,xyz
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ cat filename1.bak
abc
123
edf
xyz
笔记:
-i".bak"
允许您修改文件并获取备份文件,以防万一,文件名和后缀相同 .bak
':loop;N;$!bloop;s/\n/,/g'
创建标签loop
,将每行添加到模式缓冲区,当不到达最后一行时,添加go to
标签loop
,当到达最后一行时,将所有EOL(\n
)替换为,
。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句