oc如何提取文件中的第n行第n个字符 比如: hello, boy, girl, i love

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oc如何提取文件中的第n行第n个字符 比如: hello, boy, girl, i love相关的知识,希望对你有一定的参考价值。

ou.
yesterday.
tonight.
crying.
想提取第三行的love

参考技术A 将获取到得文件内容字符串进行分割 返回一个数组 根据数组的下标就可以找到想找得内容了

sed:查找并替换以特定字符串开头的行中的第 n 个字符

【中文标题】sed:查找并替换以特定字符串开头的行中的第 n 个字符【英文标题】:sed: find and replace nth character in a line that starts with a specific string 【发布时间】:2020-12-25 08:13:38 【问题描述】:

我有几千个具有相同行格式的文件。我试图替换以字符串(单词“ATOM”)开头的每一行中的第 17 个字符(一个字母),而不更改文件中的任何其他内容。例如,我想将 ATOM 后面的第 17 个字符从“D”替换为“A”:

输入

原子 14632 2HG2 VAL D 923 56.949 47.137 72.598 1.00 0.00 H

输出

原子 14632 2HG2 VAL A 923 56.949 47.137 72.598 1.00 0.00 H

我正在使用以下代码,它更改了字母,但删除了该行中它之前的所有内容:

sed -i '.bak' 's/^\(ATOM.\17\\)D/\A/' input.file

输出

A 923 56.949 47.137 72.598 1.00 0.00 H

对于我在这里做错的任何帮助将不胜感激。

'.bak' 就在那里,因为我在 Mac 上。

【问题讨论】:

使用awk。就像字面上的awk '$1 == "ATOM" && $5 == "D" $5 = "A" 是否必须是“第17 个字符”并且可能是“第5 个字段”?文件中的字段不是用空格分隔的吗? 嗯,很有趣。在这种类型的文件中,每个字符都是它自己的列,因此该字母将属于第 22 列。不幸的是,在此列中有更多不需要替换的字母的行,因此需要仅识别带有 ATOM 的行他们。 【参考方案1】:

是:

sed 's/^\(ATOM.\16\\)D/\1A/'
.\16\ - 你说的是 I'd like to replace the 17th character after the word ATOM from "D" to "A"。所以你想匹配任何 16 个字符,然后匹配第 17 个字符,即D\1 - 将记忆中的第一个 \(...\) 放在那里。 A - 后跟 A

【讨论】:

感谢KamilCuk,几乎成功了!除了我确实需要 17 ......它并没有与那里的 16 做出改变。然后我也使用了“。”而不是 17,只是将每个字母更改为“A”。

以上是关于oc如何提取文件中的第n行第n个字符 比如: hello, boy, girl, i love的主要内容,如果未能解决你的问题,请参考以下文章

如何提取 MySQL 字符串中的第 n 个单词并计算单词出现次数?

杨辉三角的第n行第n个数的求法(公式)

c语言中如何获得字符串的第n个字符?

SAS 字符串常用函数

c#怎么取字符串中的第n个字符

如何替换sql server中的第n个字符