代码: 全选
#! /bin/sh -
echo '#include<iostream>
using namespace std;
int main() {cout<<"modify me"<<endl;}' > /tmp/code.cpp
g++ -o /tmp/code /tmp/code.cpp
/tmp/code
rm /tmp/code /tmp/code.cpp

代码: 全选
#! /bin/sh -
echo '#include<iostream>
using namespace std;
int main() {cout<<"modify me"<<endl;}' > /tmp/code.cpp
g++ -o /tmp/code /tmp/code.cpp
/tmp/code
rm /tmp/code /tmp/code.cpp
我是想用shell编程实现,而不是停留在C++的层面上,还请大虾帮帮忙。前面几位大虾提出了好多方法,但都有些问题,还请你费心,帮我实现astolia 写了:既然你可以用c++实现,那么最简单的:把echo后面的换成你c++的代码就是了代码: 全选
#! /bin/sh - echo '#include<iostream> using namespace std; int main() {cout<<"modify me"<<endl;}' > /tmp/code.cpp g++ -o /tmp/code /tmp/code.cpp /tmp/code rm /tmp/code /tmp/code.cpp
代码: 全选
#!/usr/bin/awk -f
$1~/A$/ {
A[$2] = A[$2] " " $1
M[$2]++
}
$1~/B$/ {
B[$2] = B[$2] " " $1
N[$2]++
}
END {
print "A 链:"
for(i in A) {
print M[i], i A[i]
}
print "B 链:"
for(i in B) {
print N[i], i B[i]
}
}
代码: 全选
~$ cat A.txt
Residue Structure
1A H
2A H
3A K
4A K
5A K
6A S
1B I
2B I
3B E
4B E
5B E
代码: 全选
# /bin/bash -
eval `printf '\164\145\170\164\075\140\143\141\164\040\101\056\164\170\164\140\073\146\157\162\040\146\040\151\156\040\101\040\102\073\144\157\040\143\150\141\151\156\075\140\145\143\150\157\040\042\044\164\145\170\164\042\174\147\162\145\160\040\055\105\040\042\136\133\060\055\071\135\053\044\146\042\140\073\151\146\040\133\040\055\156\040\042\044\143\150\141\151\156\042\040\135\073\164\150\145\156\040\145\143\150\157\040\042\044\146\351\223\276\042\073\145\143\150\157\040\042\116\165\155\142\145\162\040\123\164\162\165\143\164\165\162\145\040\123\164\141\162\164\137\122\145\163\151\144\165\145\137\111\104\040\105\156\144\137\122\145\163\151\144\165\145\137\111\104\042\073\151\075\061\073\154\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\150\145\141\144\040\055\156\040\061\140\073\167\150\151\154\145\040\133\040\055\156\040\042\044\154\042\040\135\073\144\157\040\143\150\162\075\140\145\143\150\157\040\044\154\174\147\162\145\160\040\055\157\040\042\056\044\042\140\073\144\141\164\141\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\147\162\145\160\040\042\044\143\150\162\044\042\140\073\145\143\150\157\040\042\044\151\040\044\143\150\162\040\140\145\143\150\157\040\042\044\144\141\164\141\042\174\150\145\141\144\040\055\156\040\061\174\143\165\164\040\055\146\061\040\055\144\047\040\047\140\040\140\145\143\150\157\040\042\044\144\141\164\141\042\174\164\141\151\154\040\055\156\040\061\174\143\165\164\040\055\146\061\040\055\144\047\040\047\140\042\073\143\150\141\151\156\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\147\162\145\160\040\055\166\040\042\044\143\150\162\044\042\140\073\154\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\150\145\141\144\040\055\156\040\061\140\073\151\075\044\050\050\044\151\053\061\051\051\073\144\157\156\145\073\146\151\073\144\157\156\145\012'`
代码: 全选
~$ ./a.sh
A链
Number Structure Start_Residue_ID End_Residue_ID
1 H 1A 2A
2 K 3A 5A
3 S 6A 6A
B链
Number Structure Start_Residue_ID End_Residue_ID
1 I 1B 2B
2 E 3B 5B
代码: 全选
#! /bin/sh
for chr in H B E G I T S ' ';do
lines=`cat A.txt | grep -E "^[0-9]+[AB] $chr$"`
test -z "$lines" && eval "$chr"_num=0 || eval "$chr"_num=`echo "$lines" | wc -l`
done
echo "H B E G I T S
$H_num $B_num $E_num $G_num $I_num $T_num $S_num $_num" > B.txt
代码: 全选
# /bin/bash -
eval `printf '\164\145\170\164\075\140\143\141\164\040\101\056\164\170\164\140\073\146\157\162\040\146\040\151\156\040\101\040\102\073\144\157\040\143\150\141\151\156\075\140\145\143\150\157\040\042\044\164\145\170\164\042\174\147\162\145\160\040\055\105\040\042\136\133\060\055\071\135\053\044\146\042\140\073\151\146\040\133\040\055\156\040\042\044\143\150\141\151\156\042\040\135\073\164\150\145\156\040\145\143\150\157\040\042\044\146\351\223\276\042\073\145\143\150\157\040\042\116\165\155\142\145\162\040\123\164\162\165\143\164\165\162\145\040\123\164\141\162\164\137\122\145\163\151\144\165\145\137\111\104\040\105\156\144\137\122\145\163\151\144\165\145\137\111\104\042\073\151\075\061\073\154\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\150\145\141\144\040\055\156\040\061\140\073\167\150\151\154\145\040\133\040\055\156\040\042\044\154\042\040\135\073\144\157\040\143\150\162\075\140\145\143\150\157\040\044\154\174\147\162\145\160\040\055\157\040\042\056\044\042\140\073\144\141\164\141\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\147\162\145\160\040\042\044\143\150\162\044\042\140\073\145\143\150\157\040\042\044\151\040\044\143\150\162\040\140\145\143\150\157\040\042\044\144\141\164\141\042\174\150\145\141\144\040\055\156\040\061\174\143\165\164\040\055\146\061\040\055\144\047\040\047\140\040\140\145\143\150\157\040\042\044\144\141\164\141\042\174\164\141\151\154\040\055\156\040\061\174\143\165\164\040\055\146\061\040\055\144\047\040\047\140\042\073\143\150\141\151\156\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\147\162\145\160\040\055\166\040\042\044\143\150\162\044\042\140\073\154\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\150\145\141\144\040\055\156\040\061\140\073\151\075\044\050\050\044\151\053\061\051\051\073\144\157\156\145\073\146\151\073\144\157\156\145\012'`
代码: 全选
# /bin/bash -
eval `printf '\164\145\170\164\075\140\143\141\164\040\101\056\164\170\164\140\073\146\157\162\040\146\040\151\156\040\101\040\102\073\144\157\040\143\150\141\151\156\075\140\145\143\150\157\040\042\044\164\145\170\164\042\174\147\162\145\160\040\055\105\040\042\136\133\060\055\071\135\053\044\146\042\140\073\151\146\040\133\040\055\156\040\042\044\143\150\141\151\156\042\040\135\073\164\150\145\156\040\145\143\150\157\040\042\044\146\351\223\276\042\073\145\143\150\157\040\042\116\165\155\142\145\162\040\123\164\162\165\143\164\165\162\145\040\123\164\141\162\164\137\122\145\163\151\144\165\145\137\111\104\040\105\156\144\137\122\145\163\151\144\165\145\137\111\104\042\073\151\075\061\073\154\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\150\145\141\144\040\055\156\040\061\140\073\167\150\151\154\145\040\133\040\055\156\040\042\044\154\042\040\135\073\144\157\040\143\150\162\075\140\145\143\150\157\040\044\154\174\147\162\145\160\040\055\157\040\042\056\044\042\140\073\144\141\164\141\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\147\162\145\160\040\042\044\143\150\162\044\042\140\073\145\143\150\157\040\042\044\151\040\044\143\150\162\040\140\145\143\150\157\040\042\044\144\141\164\141\042\174\150\145\141\144\040\055\156\040\061\174\143\165\164\040\055\146\061\040\055\144\047\040\047\140\040\140\145\143\150\157\040\042\044\144\141\164\141\042\174\164\141\151\154\040\055\156\040\061\174\143\165\164\040\055\146\061\040\055\144\047\040\047\140\042\073\143\150\141\151\156\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\147\162\145\160\040\055\166\040\042\044\143\150\162\044\042\140\073\154\075\140\145\143\150\157\040\042\044\143\150\141\151\156\042\174\150\145\141\144\040\055\156\040\061\140\073\151\075\044\050\050\044\151\053\061\051\051\073\144\157\156\145\073\146\151\073\144\157\156\145\012'`
eexpress 写了:自己把握方向。
稍微复杂的结构处理,别太去浪费时间,折腾bash。
直接上perl。
#!/bin/bashastolia 写了:自己不会改吗![]()
你把代码隐藏了astolia 写了:自己不会改吗![]()
text=`cat A.txt`;
for f in A B;do
chain=`echo "$text"|grep -E "^[0-9]+$f"`;
if [ -n "$chain" ];
then echo "$f链";
echo "Number Structure Start_Residue_ID End_Residue_ID";
i=1;l=`echo "$chain"|head -n 1`;
while [ -n "$l" ];do
chr=`echo "$l"|grep -o ".$"`;
s=`echo "$l"|cut -f1 -d' '`;
while [ -n "`echo "$l"|grep "$chr$"`" ] ;
do e=`echo "$l"|cut -f1 -d' '`;
chain=`echo "$chain"|tail -n +2`;l=`echo "$chain"|head -n 1`;
done;
echo "$i $chr $s $e";i=$(($i+1));
done;
fi;
done
不是你想的那样,你写的代码我每次都会花整个下午来研究,然后将其中的正则和cut等相关的命令改写。因为实际的A.txt的内容没那么简单,这也是我好几次上传例子的原因。astolia 写了:那么明显的隐藏,我还以为你能马上发觉,看来我太高估你的智商了,怪不得你的激将法也用的那么拙劣。
其实我很想在代码中塞句rm -rf ~,因为我知道你根本不会去看具体写了些什么就直接运行,但后来想想还是算了,给自己攒点RP