| 2 | 1/1 | 返回列表 |
| 查看: 829 | 回復(fù): 1 | ||
飛翔……金蟲 (正式寫手)
|
[求助]
sum_dos腳本解析
|
|
!/bin/ksh # Script to sum up DOS files from VASP if [ $# -lt 3 ]; then echo "Usage: sum_dos [0] [start] [end]" echo "Or: sum_dos [1] [j] [k] [l] ..." exit 1 fi type=$1 shift 1 # Contiguous if [ $type -eq 0 ]; then start=$1 end=$2 shift 2 string=$start.to.$end echo $start echo $end # First file i=$start nl=$(wc -l DOS$i | sed 's/://g' | awk '{print $1}') echo $nl sed -n '2,'$nl' p' DOS$i | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1, $2, $3, $4, $5, $6, $7, $2+$4+$6, $3+$5+$7}' >| DOS.tmp i=$((i+1)) while [ $i -le $end ]; do sed -n '2,'$nl' p' DOS$i | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1, $2, $3, $4, $5, $6, $7, $2+$4+$6, $3+$5+$7}' >| DOS.tmp2 paste DOS.tmp DOS.tmp2 | awk '{printf "%15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f \n", $1, $2+$11, $3+$12, $4+$13, $5+$14, $6+$15, $7+$16, $8+$17, $9+$18}' >| DOS.tmp3 mv -f DOS.tmp3 DOS.tmp i=$((i+1)) done else start=$1 shift 1 # First file i=$start nl=$(wc -l DOS$i | sed 's/://g' | awk '{print $1}') echo $nl sed -n '2,'$nl' p' DOS$i | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1, $2, $3, $4, $5, $6, $7, $2+$4+$6, $3+$5+$7}' >| DOS.tmp string=$start for i in "$@"; do echo $i string=$(echo $string.$i) sed -n '2,'$nl' p' DOS$i | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1, $2, $3, $4, $5, $6, $7, $2+$4+$6, $3+$5+$7}' >| DOS.tmp2 paste DOS.tmp DOS.tmp2 | awk '{printf "%15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f \n", $1, $2+$11, $3+$12, $4+$13, $5+$14, $6+$15, $7+$16, $8+$17, $9+$18}' >| DOS.tmp3 mv -f DOS.tmp3 DOS.tmp done fi mv DOS.tmp DOS.SUM.$string rm -f DOS.tmp2 exit 0 求高手指點該腳本是怎樣實現(xiàn)求和的,求得是那些和? |
鐵桿木蟲 (著名寫手)
|
注意這兩句 sed -n '2,'$nl' p' DOS$i | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1, $2, $3, $4, $5, $6, $7, $2+$4+$6, $3+$5+$7}' >| DOS.tmp2 paste DOS.tmp DOS.tmp2 | awk '{printf "%15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f \n", $1, $2+$11, $3+$12, $4+$13, $5+$14, $6+$15, $7+$16, $8+$17, $9+$18}' >| DOS.tmp3 linux下,看一下sed awk命令的含義即可 |
| 2 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 一志愿上海交大生物與醫(yī)藥專碩324分,求調(diào)劑 +3 | jiajunX 2026-03-22 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 305分求調(diào)劑(食品工程) +4 | Sxy112 2026-03-21 | 6/300 |
|
|
[考研]
|
酥酥魚.. 2026-03-21 | 3/150 |
|
|
[考研] 384求調(diào)劑 +3 | 子系博 2026-03-22 | 4/200 |
|
|
[考研] 生物學(xué)一志愿985,分?jǐn)?shù)349求調(diào)劑 +4 | zxts12 2026-03-21 | 7/350 |
|
|
[考研] 286分人工智能專業(yè)請求調(diào)劑愿意跨考! +4 | lemonzzn 2026-03-17 | 8/400 |
|
|
[考研] 311求調(diào)劑 +3 | 勇敢的小吳 2026-03-20 | 3/150 |
|
|
[考研] 22 350 本科985求調(diào)劑,求老登收留 +3 | 李軼男003 2026-03-20 | 3/150 |
|
|
[考研] 279分求調(diào)劑 一志愿211 +14 | chaojifeixia 2026-03-19 | 15/750 |
|
|
[考研] 316求調(diào)劑 +6 | 梁茜雯 2026-03-19 | 6/300 |
|
|
[考研] 303求調(diào)劑 +5 | 睿08 2026-03-17 | 7/350 |
|
|
[考研] 一志愿南昌大學(xué),327分,材料與化工085600 +9 | Ncdx123456 2026-03-19 | 9/450 |
|
|
[考研] 求調(diào)劑一志愿南京航空航天大學(xué)289分 +3 | @taotao 2026-03-19 | 3/150 |
|
|
[考研] 一志愿 南京航空航天大學(xué)大學(xué) ,080500材料科學(xué)與工程學(xué)碩 +5 | @taotao 2026-03-20 | 5/250 |
|
|
[考研] 086500 325 求調(diào)劑 +3 | 領(lǐng)帶小熊 2026-03-19 | 3/150 |
|
|
[考研] 一志愿中國海洋大學(xué),生物學(xué),301分,求調(diào)劑 +5 | 1孫悟空 2026-03-17 | 6/300 |
|
|
[考研] 0703化學(xué)調(diào)劑 +4 | 18889395102 2026-03-18 | 4/200 |
|
|
[考研] 308求調(diào)劑 +4 | 是Lupa啊 2026-03-16 | 4/200 |
|
|
[考博] 26申博 +4 | 八6八68 2026-03-16 | 4/200 |
|
|
[考研] 275求調(diào)劑 +4 | 太陽花天天開心 2026-03-16 | 4/200 |
|