美文网首页
2020-11-09 信息扩充原理多次自动运行awk sed

2020-11-09 信息扩充原理多次自动运行awk sed

作者: linuxScripter | 来源:发表于2020-11-09 17:08 被阅读0次

    seq101 100 2001 | xargs -i bash -c "sed 's/^/{} /g' <(seq 52 -11)"  |  awk '{ print("cat zCompute_withQuanti.c| sed '\''s/1001/"$1"/g'\'' | sed '\''s/= 52/="$2"/g'\''> tmp.c;  gcc tmp.c; catzzHJBComputing.cmd.benji  | sed'\''s/1001/"$1"/g'\'' > tmp.cmd; chmod +x tmp.cmd; ./tmp.cmd;cp  resultAll_benji  resultAll_benji.grid"$1".weishu"$2".times200");}' \

      > tmp1

    chmod+x tmp1

    ./tmp1

    窍门:要从变化入手,不要企图一下子掌握所有。

    seq 101 100 2001  | xargs -i bash -c "

    sed 's/^/{} /g' <(seq 52 -1 1)"

    到这里为止,做的事情是一个全交叉,信息扩充:

    z@z-ThinkPad-T400:~/zworkT400/zHJB/dockerImple$ seq 101 100 301  | xargs -i bash -c " sed 's/^/{} /g' <(seq 3)"

    101 1

    101 2

    101 3

    201 1

    201 2

    201 3

    301 1

    301 2

    301 3 就是两组数,每个和每个放在一行,全组合一下。 给下一级,awk这个命令。

      |  awk '{ print("cat zCompute_withQuanti.c | sed '\''s/1001/"$1"/g'\'' | sed '\''s/= 52/="$2"/g'\'' > tmp.c; 

    gcc tmp.c;

    cat zzHJBComputing.cmd.benji  | sed '\''s/1001/"$1"/g'\'' > tmp.cmd;

    chmod +x tmp.cmd;

    ./tmp.cmd;

    cp  resultAll_benji  resultAll_benji.grid"$1".weishu"$2".times200");

    }'

    \  续行符号

      > tmp1  把awk的结果,放入一个文件tmp1中

    chmod +x tmp1  把它变成可执行的。

    ./tmp1  执行。

    tmp1文件的样子,就是:

    cat zCompute_withQuanti.c|sed

    's/1001/2001/g'|sed

    's/= 52/=2/g' > tmp.c; 

    gcc tmp.c;

    cat zzHJBComputing.cmd.benji  |sed 's/1001/2001/g'> tmp.cmd; chmod +xtmp.cmd; ./tmp.cmd;

    cp  resultAll_benji  resultAll_benji.grid2001.weishu2.times200

    cat zCompute_withQuanti.c | sed 's/1001/2001/g' | sed 's/= 52/=1/g' >tmp.c;  gcc tmp.c; cat zzHJBComputing.cmd.benji  | sed 's/1001/2001/g' > tmp.cmd; chmod +xtmp.cmd; ./tmp.cmd; cp resultAll_benji resultAll_benji.grid2001.weishu1.times200

    对比后,可以发现 所有细节的 不同之处:

    这些细节,是发现出来的,自己发现的,才有乐趣,不然很没有乐趣!!!

    '\''不同!

    1001/"$1"和1001/2001不同!

    grid"$1".weishu"$2".times200和grid2001.weishu2.times200不同!

    因为:在单引号'里面的时候,如果又出现了单引号',而它不是我想结束的那个配对儿的单引号'的时候,就要用'\''表示没结束。

    因为$1是我们的参数,就要变的那个值,从201、301、401。。。到2001

    因为$2是我们的参数,是第二个要变的量,从52到1.

    "$1"中的双引号,是awk命令要求的样子,不能改。

    相关文章

      网友评论

          本文标题:2020-11-09 信息扩充原理多次自动运行awk sed

          本文链接:https://www.haomeiwen.com/subject/wmxrbktx.html