首页 > 其他分享 >awk 处理POSCAR的问题

awk 处理POSCAR的问题

时间:2023-03-15 17:12:41浏览次数:30  
标签:LF 处理 一行 awk print CR POSCAR

利用awd给POSCAR所有行添加一列
例如把 1 2 3 改成 1 2 3 G
使用命令 awk '{print $0," G"}' POSCAR
但是出现的结果是 G 1 2 3,

经过查找,是因为该POSCAR用vesta导出了,
接着探究发现导出后,POSCAR的换行符从LF变成了CRLF
于是尝试用sed命令: sed -i 's/\r//g' POSCAR
将所有的CR删除,再次尝试,成功!

离谱,离谱,机器不会错,错的都是人!!!
\n : 换行符(newline),另起一行,对应ASCII值10(缩写:LF)
\r : 回车符(return),回到一行的开头,对应ASCII值13(缩写:CR)
windows :一行的结束是\r\n
linu\unix : 一行的结束是\n
macos: 一行的结束是\r
再看原命令中 print $0," G", 这里的$0表示一行的所有列,当打印到最后一列的时候
有一个\r符号,所以指针回到当前行的最前面,然后在打印 " G",问题解决!

标签:LF,处理,一行,awk,print,CR,POSCAR
From: https://www.cnblogs.com/ztt-14789/p/17219126.html

相关文章