- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是输入
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
关于linux - 如何在 Linux 中编辑文件并添加换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668379/
我有一个带有 的表格我想在服务器端捕获该文本区域中的任何换行符,并将它们替换为 . 这可能吗? 我尝试设置 white-space:pre在 textarea 上的 CSS,但仍然不够。 最佳答案
我正在通过 FileStream 更改文件(这是一个非常大的文件,我只需要更改标题而不重写整个文件。 该文件可以有 Unix 或 Windows 换行符,知道哪一个对我来说很重要,这样我可以在更新文件
如何以编程方式(不使用 vi)将 DOS/Windows 换行符转换为 Unix 换行符? dos2unix 和 unix2dos 命令在某些系统上不可用。 如何使用 sed、awk 和 tr 等命令
我编辑了一个 BibteX 文件,到目前为止,它显示了我需要的所有信息。 FUNCTION {electronic} { output.bibitem format.btitle "title"
您的软件是否处理来自其他系统的换行符? Linux/BSD linefeed ^J 10 x0A Windows/IBM return linefeed ^M^
我发现 Windows 命令行重定向会自动将 '\n' 替换为 '\r\n'。有什么方法可以避免这种情况?因为在 stdout 或 stderr 重定向之后,如果您将 '\r\n' 写入控制台,您将得
来自 this question ,这个…… lines = foo.value.split(/\r\n|\r|\n/); 是拆分字符串的一种方法,但如何用换行符将其连接回去? 另外,我想知道如果我说
我正在尝试获取新行,但如果我使用 \n 它不起作用。 任何通过向字符串添加一些东西来换行的方法,例如 \r\n (这也不起作用) gfx.DrawString("Project No \n" + te
我有一串数据,中间有换行符。例如: "Product Name \n Product Color \n Product Quantity \n Product Location \n Product
我正在尝试让 scmCommentPrefix 按照 http://maven.apache.org/plugins/maven-release-plugin/faq.html#scmCommentP
如何检查正则表达式 /^\n/在字符串中 blahblahblah 我似乎无法从 php 的 preg_match 获得返回值 1 . 编辑: 由于某种原因,我的坏处是 CR 本身就是我的换行符。
我很难在与文本字符串相同的行上输出变量。当我使用Write-Host而不是Write-Output时,它可以工作。我想使用Write-Output,因为这似乎是最佳做法(将内容保留在管道中),但是Wr
我正在Powershell中工作,以为here字符串中的特定单词着色。除包含回车/换行符的单词外,其他功能均有效。没有这些字符,如何计算单词的长度? 以下是我正在使用的功能和测试数据。我希望第二行上的
我有一个在Powershell中运行的脚本,并且我希望能够在脚本名称和脚本内容本身之间的结果文本文件输出中添加一行。 当前,从下面开始,行$str_msg = $file,[System.IO.Fil
有人知道smalltalk中字符串的换行符是什么吗? 我试图将字符串拆分为单独的行,但我无法弄清楚smalltalk 中的换行符是什么。 即。 string := 'smalltalk is
我有以下 printf 语句: printf ("%s (%s)\n",$row["word"], $row["definition"]); 我正在尝试解决换行符而不是: word defin
这个问题已经有答案了: how to use dotall flag for regex.exec() (4 个回答) 已关闭 7 年前。 字符串内容
我想用 CSS 换行。我正在使用内容。 td:before { content: "Test\A Test2"; } 它不工作。如何正确
考虑一个具有 UNIX 行结尾的 C++ 文件(即 '\x0a' 而不是 "\x0d\x0a")并包含以下原始字符串文字: const char foo[] = R"(hello^M )"; (其中
我有以下 printf 语句: printf ("%s (%s)\n",$row["word"], $row["definition"]); 我正在尝试解决换行符而不是: word defin
我是一名优秀的程序员,十分优秀!