我在一个文件中有三列数据,即
0.464980006 0.237939999 0.000000000
0.464980006 0.737940013 0.000000000
0.964980006 0.237939999 0.000000000
0.964980006 0.737940013 0.000000000
0.298310012 0.404610008 0.068700001
0.298310012 0.904609978 0.068700001
0.798309982 0.404610008 0.068700001
0.798309982 0.904609978 0.068700001
现在我想将F F F追加到每一行的末尾,我应该如何实现呢?
这是我的代码:
#!/bin/bash
tail -n +9 POSCAR | head -n 24 | sort -k3 | head -8 > o-bot-layer
tail -n +9 POSCAR | head -n 24 | sort -k3 | tail -16 > o-sur-layer
tail -n +33 POSCAR | sort -k3 | head -4 > ce-bot-layer
tail -n +33 POSCAR | sort -k3 | tail -8 > ce-sur-layer
cat o-bot-layer | awk '{print $1,$2,$3,"F F F"}' > o-bot-layer
head -n 8 POSCAR > lat
cat o-sur-layer >> lat
cat o-bot-layer >> lat
cat ce-sur-layer >> lat
cat ce-bot-layer >> lat
mv lat pos.str
rm o-sur-layer o-bot-layer ce-sur-layer ce-bot-layer
它不起作用。我在其他人的帖子中尝试了sed的/ $'和awk'{print $ 0,“”}',奇怪的是我只是将它附加到行的开头而不是结尾。
这样的事情:
F F F0002 0.571280003 0.137400001
F F F0017 0.071280003 0.137400001
F F F0017 0.571280003 0.137400001
F F F0006 0.237939999 0.206110001
F F F0006 0.737940013 0.206110001
F F F0006 0.237939999 0.206110001
F F F0006 0.737940013 0.206110001
F F F0012 0.404610008 0.274809986
F F F0012 0.904609978 0.274809986
F F F9982 0.404610008 0.274809986
F F F9982 0.904609978 0.274809986
F F F0002 0.071280003 0.343510002
F F F0002 0.571280003 0.343510002
F F F0017 0.071280003 0.343510002
F F F0017 0.571280003 0.343510002
F F F0006 0.237939999 0.000000000
F F F0006 0.737940013 0.000000000
F F F0006 0.237939999 0.000000000
F F F0006 0.737940013 0.000000000
F F F0012 0.404610008 0.068700001
F F F0012 0.904609978 0.068700001
F F F9982 0.404610008 0.068700001
F F F9982 0.904609978 0.068700001
F F F0012 0.404610008 0.171749994
F F F0012 0.904609978 0.171749994
F F F9982 0.404610008 0.171749994
我怀疑我的文件格式中有一些隐藏的东西,比如\ n在每行的开头,所以sed $ s会认为行的开头是行尾。我不确定......
谢谢!
答案 0 :(得分:1)
哦,天哪。我懂了。
我收到的POSCAR文件很可疑。
我猜这是来自windows,所以它包含一些dos格式,可能会在unix环境中产生误导。
我首先使用
进行转换dos2unix POSCAR
然后运行我的代码,现在一切正常,就像其他人的帖子一样!
任何大师都可以进一步解释这种肮脏的dos格式吗?
答案 1 :(得分:0)
我试图浏览并发现,可能你会帮助你找到消息来源
yourElement.on("click", function(){
d3.select(this).attr("transform", "translate(0, " + someValue + ")");
});
任何方式看看这是否有帮助
Unicode Character 'START OF TEXT' (U+0002)
Unicode Character 'DEVICE CONTROL TWO' (U+0012)
Unicode Character 'END OF TRANSMISSION BLOCK' (U+0017)