首字符替换的几种方式

在处理文件的过程中,有时会遇到首字符的替换,比如LAMMPS软件产生的XYZ格式文件,这里大致总结下替换首字符的几种方式。

第一列表示原子类型的数据是用数字代替的,如下所示。

9
Atoms
1 12.6942 12.6942 12.768
1 12.6901 12.6901 15.9599
1 12.7511 16.0122 12.6378
1 12.6942 15.882 15.9558
1 16.0122 12.7511 12.6378
1 15.882 12.6942 15.9558
1 15.9439 15.9439 12.7061
1 ↑ 16.0122 16.0122 15.8989
2 12.849 14.7479 13.9021

这样在可视化的时候就不能显示原子的颜色和成键,需要将第一列换成元素名称。这里要将1换成Fe,2换成He。

Windows平台

Windows平台下,替换字符比较简单。这里介绍两种方式:

1. 替换命令:Ctrl+H

使用编辑器打开以上文件,使用Ctrl+H快捷命令,输入“查找目标”和“替换为”,勾选“全词匹配”,替换即可。推荐编辑器:Ultraedit或Notepad++。

即便如此,有时也会将其他的1给替换掉,这显然不是我们想要的。那么就可以使用下面的方法。

2. 编辑器列操作

一些比较高级的编辑器提供列操作,可以同时对一整列数据进行操作,如Ultraedit或Notepad++。

若使用Notepad++,则打开后,将光标移至第10行的 ↑ 处,按住alt键,向左上方向拖拽,至将所有的1全选。这时即进入列模式,将1删掉,键入Fe。然后按正常的将2修改为He即可。

Linux平台

Linux平台下的替换都是通过命令实现的,所以相对来说要复杂点,但功能也更强大点。也有不少方法,这里介绍亮点:

1. vim的Visual Block模式

vim是一款功能强大的linux编辑器,提供的visual block模式类似前面提到的列编辑模式。

具体操作可以阅读:vim同时(取消)注释多行文本

2. sed命令

sed命令是功能强大的linux命令,可以完成很复杂的替换功能。这里进行首字符的替换只是其替换的一种规则。

同样针对前面的问题,sed替换命令如下:

sed 's/^1/Fe/g' test.xyz > out.xyz

这里的^1即是指以1开头的字符,Fe是要替换的,g表示全局替换,test.xyz表示要替换的文件,out.xyz为替换后文件。

当然,肯定还有其他的方法。但这里列出来的都是相对比较简单的。如果你还有更简单的,请与我分享,谢谢!

标签: vim, linux, linux shell

相关文章推荐

添加新评论 (无需注册,可直接评论)