0

私のコード行は以下のとおりです。

awk 'BEGIN {printf "gnome-terminal"}
           {printf " --tab -e  \"telnet "$4" "$6 " |  tee " $1$12"\" -t \"" $1" "$12 "\""  }
     END   {printf "\n"}' temp1.prm >> abc

出力は abc で次のようになります。

gnome-terminal --tab -e  "telnet 10.31.248.104 3007 |  tee dutA1MM1" -t "dutA1 MM1" 

以下のフォーマットを取得する必要があります。

gnome-terminal --tab -e 'bash -c "telnet 10.31.248.104 3007 | tee script1.log"' -t "dutA1 MM1" 

誰でも助けることができますか?

4

3 に答える 3

1

おそらく次のようなものが必要です。

awk '{ printf "gnome-terminal --tab -e \047bash -c \"telnet %s %s | tee script1.log\"\047 -t \"%s %s\"\n", $4, $6, $1, $12 }' file

しかし、サンプル入力と期待される出力を提供しなかったので、それは単なる推測です。

于 2013-09-19T18:20:18.147 に答える
1

この二重引用符で囲まれた形式を試してください。

awk "BEGIN {printf \"gnome-terminal\"} {printf \" --tab -e  'bash -c \\\"telnet \"\$4\" \"\$6 \" |  tee \" \$1\$12\"\\\"' -t \\\"\" \$1\" \"\$12 \"\\\"\"  } END { printf \"\\n\"}" temp1.prm >> abc

でテストするとecho、 への引数awkは文字通り

BEGIN {printf "gnome-terminal"} {printf " --tab -e  'bash -c \"telnet "$4" "$6 " |  tee " $1$12"\"' -t \"" $1" "$12 "\""  } END { printf "\n"}
于 2013-09-19T16:02:17.903 に答える
1

引用の悪夢に陥らないでください。次のように整理できます。

BEGIN {
    double_quote = "\""
    s1 = "gnome-terminal --tab -e 'bash -c "
    s2 = double_quote "telnet 10.31.248.104 3007 | tee script1.log" double_quote
    s3 = "' -t dutA1 MM1"

    printf "%s%s%s\n",s1,s2,s3
}
于 2013-09-19T17:43:44.457 に答える