我想改变许多仿真输入文件的参数文件顺序。由于材料数据文件很多,(>100个材料@>200行)所以我需要自动化。
例如,
....
mobility = [1470.0 530.0],
eps0 = [3.0 -1.0],
....
....
mobility = [530.0 1470.0],
eps0 = [-1.0 3.0],
....
在这种情况下,最好使用简单的脚本形式。
也许这就是你要找的:
cat tst.awk
match($0, /[[^]]+]/) {
str = substr($0, RSTART+1, RLENGTH-2)
split(str, a)
$0 = ( a[1] <= a[2] ? $1 OFS $2 " ["str"]," : $1 OFS $2 " ["a[2] OFS a[1]"]," )
printf("%-8s %-1s %-6s %8sn", $1, $2, $3, $4)
}
$ awk -f tst.awk input
mobility = [530.0 1470.0],
eps0 = [-1.0 3.0],
要进一步阅读,请查看GNU Awk用户指南。