gpt4 book ai didi

linux - 在文件上使用粘贴命令并将结果保存到同一文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:54 25 4
gpt4 key购买 nike

基本上,我是在使用粘贴命令更改文件中的回车符,但我想将结果保存到同一个文件中。

paste -s -d, filename1

我无法安装任何工具,例如 Sponge。

最佳答案

如果你真的想使用 paste 命令,你将不得不采用像这样的方法,你使用 tmp 文件并替换原始文件 < strong>(在执行此操作之前备份您的文件):

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,将每一行添加到pattern buffer,当未到达最后一行,转到标签loop,当您到达最后一行时,您将所有 EOL (\n) 替换为 ,

关于linux - 在文件上使用粘贴命令并将结果保存到同一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54778023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com