2017-02-14 3 views
-4

私はPerlスクリプトの中でPerlスクリプトを実行しています。このスクリプトの出力は次のようなものです。これらの値は、配列に格納されているperlの方法でcut、grep、uniqを使う

# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/angyvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/aqmmgvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/69aqvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/69aavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/qqmavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/wttvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/9aaqvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/9aaavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/a1vqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
# aAM axac: cmt /tm9/raaqHRW /myqq1fqq1er/maaavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a1.1.e.1234567891008547.ahqva 
[qNFq] cqqq aarvqca qntereatqng 1qatvqnqth. heqqq 1qatvqnqth. 
[qNFq] cqqq aarvqca qntereatqng fmtvqnqth. heqqq fmtvqnqth. 
[qNFq] cqqq aarvqca qntereatqng gcaavqnqth. heqqq gcaavqnqth. 
[qNFq] cqqq aarvqca qntereatqng gq9vqnqth. heqqq gq9vqnqth. 
[qNFq] cqqq aarvqca qntereatqng hvavqnqth. heqqq hvavqnqth. 
[qNFq] cqqq aarvqca qntereatqng q9vqnqth. heqqq q9vqnqth. 
[qNFq] cqqq aarvqca qntereatqng 9vaqvqnqth. heqqq 9vaqvqnqth. 
[qNFq] cqqq aarvqca qntereatqng mcaavqnqth. heqqq mcaavqnqth. 
[qNFq] cqqq aarvqca qntereatqng mcqrvqnqth. heqqq mcqrvqnqth. 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/angyvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/aqmmgvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/69aqvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/69aavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/qqmavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/wttvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/9aaqvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/9aaavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/a1vqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
# aAM axac: cmt /tm9/raawV9h /myqq1fqq1er/maaavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a4.1.e.1234567891014523.ahqva 
[qNFq] cqqq aarvqca qntereatqng 1qatvqnqth. heqqq 1qatvqnqth. 
[qNFq] cqqq aarvqca qntereatqng fmtvqnqth. heqqq fmtvqnqth. 
[qNFq] cqqq aarvqca qntereatqng 6caavqnqth. heqqq 6caavqnqth. 
[qNFq] cqqq aarvqca qntereatqng 6q9tvqnqth. heqqq 6q9tvqnqth. 
[qNFq] cqqq aarvqca qntereatqng q9vqnqth. heqqq q9vqnqth. 
[qNFq] cqqq aarvqca qntereatqng 9vaqvqnqth. heqqq 9vaqvqnqth. 
[qNFq] cqqq aarvqca qntereatqng mcaavqnqth. heqqq mcaavqnqth. 
[qNFq] cqqq aarvqca qntereatqng mcqrvqnqth. heqqq mcqrvqnqth. 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/angyvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/aqmmgvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/69aqvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/69aavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/qqmavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/wttvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/9aaqvqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/9aaavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/a1vqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 
# aAM axac: cmt /tm9/raaaRX6 /myqq1fqq1er/maaavqnqth/rmn/cqqqa/newfqq1er/111111111/ty9a7.1.e.1234567891020719.ahqva 

私は、この

tm9/raaqHRW /111111111/ty9a1 
tm9/raawV9h /111111111/ty9a4 
tm9/raaaRX6 /111111111/ty9a7 

私は現在のファイルにスクリプトの出力を書き込み、次のようにやっているような出力を取得する必要があります

grep "cmt /tm9" output_file | cut -d'/' -f2,3,9,10 | cut -d '.' -f1 | uniq 

これを行うためのPerlの方法はありますか?

+2

もちろんあります。あなたはどんな問題を抱えていますか? – ikegami

+0

私はgrepを使い、データ構造を配列として保持することができました。つまり、#で始まる文字でgrepし、その結果を配列に格納します。私はperlには新しく、配列として保持する方法を知らなかった。私はそれらを壊すことしか知りませんでした –

+1

[質問が閉じられる](http://stackoverflow.com/q/42051608/176646)、まったく同じ質問を再度投稿しないでください。近い理由でガイダンスを読み、他の人のコメントに基づいて質問を明確にし、質問を改善して再開できるようにしてください。 – ThisSuitIsBlackNot

答えて

0
perl -F/ -nle '/cmt \/tm9/ && do { $_ = join "/", @F[1,2,8,9]; s/\..*//; print if ++$h{$_} == 1}' output_file 

この回答をお探しですか?

+0

しかし、私は配列の値をファイルに保存していません。 –

+0

あなたの仕事をより正確に記述すると、より良い答えを得ることができます。私のperlの1つのライナーは、あなたの配管されたコマンドの組み合わせがすることを正確に行います。 –

+0

"私は現在、スクリプトの出力をファイルに書き込んで、次のようにしています。"これは私が言ったことです。しかし、私が必要とするのは、「私はPerlスクリプトの中でPerlスクリプトを実行しています。スクリプトの出力はこのようなものです。これらの値は配列に格納されています」。見て教えてください。私はperlに新しいです –

関連する問題