我有两千个具有相同行格式的文件。我正在尝试以字符串(单词“ 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小时
对于我在这里做错的任何帮助,将不胜感激。
因为我在Mac电脑上,所以存在'.bak'。
它的:
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
。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句