gpt4 book ai didi

linux - 如何在 Linux 中编辑文件并添加换行符?

转载 作者:太空宇宙 更新时间:2023-11-04 06:05:49 25 4
gpt4 key购买 nike

这是输入

R0001 893573.56035613.416.60002 893580.06035624.316.80003 893586.56035635.116.91
R0004 893593.06035646.017.00005 893599.46035656.917.00006 893605.96035667.817.01

我想要这个

R0001 893573.56035613.416.6
0002 893580.06035624.316.8
0003 893586.56035635.116.91
R0004 893593.06035646.017.0
0005 893599.46035656.917.0
0006 893605.96035667.817.01

我使用linux centos 5.4

最佳答案

假设您的数据位于名为“file”的文件中:

sed -i 's/^\(.\{27\}\)\(.\{26\}\)\(.*\)/\1\n\2\n\3/g' file

sed 是一个非常强大的文本处理工具,虽然不是最容易使用的(但是当您想要制作这样的示例时非常容易)。这就是魔法:

“-i”是“为我做这件事”的标志单引号中有一条指令,由四个部分组成,用斜杠分隔:1.命令:“s”-替换2.模式:想要改变什么3.预期结果:你希望它是什么样子4.范围:“g”-全局

模式是

\(.\{27\}\)\(.\{26\}\)\(.*\)

这意味着“将一行中的前 27 个字符作为一组,然后将接下来的 26 个字符作为另一组,然后将行中所有剩余的字符作为第一组”。

预期结果是

\1\n\2\n\3

这意味着“粘贴第一组,粘贴新行,粘贴第二组,粘贴新行,粘贴第三组”。

为了更清楚,您可以将其放入脚本中:

#!/bin/bash
COLUMN1=27
COLUMN2=26
FILENAME="file"
sed -i "s/^\(.\{$COLUMN1\}\)\(.\{$COLUMN2\}\)\(.*\)/\1\n\2\n\3/g" file
exit 0

要使脚本打开任何文件编辑器(我使用 vim,其他选项是 emacs、nano、kwrite、kate、geany、gedit...我可以这样继续一整天)并粘贴上面的代码。保存,关闭编辑器并发出

chmod +x script

能够执行它。您可以通过

调用脚本
./script

现在您可以为脚本提供参数,检查"file"是否存在,添加更多断点...但那是另一个故事了。

然后你可以使用不同的工具,比如 awk (我强烈推荐它,但我在 vim 中编写时通常使用正则表达式,而 sed 更像 vim 而不是 awk,所以我觉得用它更舒服)。

更多阅读:

http://www.brunolinux.com/02-The_Terminal/Find_and%20Replace_with_Sed.html

http://www.grymoire.com/Unix/Sed.html

http://www.hcs.harvard.edu/~dholland/computers/awk.html

http://www.regular-expressions.info/

关于linux - 如何在 Linux 中编辑文件并添加换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668379/

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