行の一部を選択して貼り付けて別のファイルを作成する方法は?

行の一部を選択して貼り付けて別のファイルを作成する方法は?

次の方法でデータを整理するのに役立ちます。私の入力データは次のとおりです。

入力ファイル:

1   2   1   0.6007  0.1 0.3 0.2 0.7 0.7 0   2   0.3073  0.1 0.1 0.2 0.4 0.7 0.5
2   2   1   0.4022  0.1 0.3 0.2 0.7 0.7 0   2   0.5085  0.1 0.1 0.2 0.4 0.7 0.5
3   2   1   0.0029  0.1 0.3 0.2 0.7 0.7 0   2   0.9078  0.1 0.1 0.2 0.4 0.7 0.5
4   2   1   0.0692  0.1 0.3 0.2 0.7 0.7 0   2   0.8805  0.1 0.1 0.2 0.4 0.7 0.5

私が望む出力ファイルは次のとおりです。

結果ファイル:

1   2                               
        0.6007  1   0.1 0.3 0.2 0.7 0.7 0
        0.3073  2   0.1 0.1 0.2 0.4 0.7 0.5
2   2                               
        0.4022  1   0.1 0.3 0.2 0.7 0.7 0
        0.5085  2   0.1 0.1 0.2 0.4 0.7 0.5
3   2                               
        0.0029  1   0.1 0.3 0.2 0.7 0.7 0
        0.9078  2   0.1 0.1 0.2 0.4 0.7 0.5
4   2                               
        0.0692  1   0.1 0.3 0.2 0.7 0.7 0
        0.8805  2   0.1 0.1 0.2 0.4 0.7 0.5

ベストアンサー1

また行こう slm:)

コマンドラインからのPerlの同様のメカニズム:

perl -ane 'print "$F[0]   $F[1]\n        $F[3]   $F[2]   @F[4..9]\n" .
    "        $F[11]   $F[10]   @F[12..17]\n"' inputfile

-ninputfile各行をループとして扱います。-aフィールド区切り文字(デフォルトでは空白)を中心に各行を分割し、それを特殊な配列に割り当ててから指定され@F-eperlコマンドに渡します(必要な記号にスペースと改行文字を使用して必要な順序で要素を印刷するだけです) )。

これをPerlスクリプトファイルに入れます:

#! /usr/bin/perl -an 

print "$F[0]   $F[1]\n        $F[3]   $F[2]   @F[4..9]\n" .
     "        $F[11]   $F[10]   @F[12..17]\n";

Chmodファイル(chmod u+x perlscript)を入力して./perlscript inputfile

> outputfile出力を別のファイルに入れる必要がある場合は、コマンドの最後に入れます。 (これはコマンドラインで直接使用された最初の例と同じです。)

./perlscript inputfile > outputfile

おすすめ記事