Witam mam taki problem. Chce napisac skrypt ktory parsuje plik z logami. W kazdym pliku jest fraza

m|250456|370|385|Submited score|161220
gdzie wartosc po "Submited score" jest rozna w kazdym pliku. Chce zapisac do pliku nazwy tych plikow w ktorych wartosc tego parametru jest wieksza od zadanaj zmiennej w moim skrypcie np. Xvalue = 5000;


# !/bin/bash

#   

###############################################################################

#

# Skrypt pobiera pliki z katalogu, w ktorym sie znajduje. 

# Sprawdza wartosc parametru: Submited score. Jezeli wartosc jest 

# wieksza od zadanego parametru X to nazwy plikow zostaja wyswietlone. 

#

# @author Robert Kaszubowski.

#

# ver 1.0               

#

###############################################################################

#

# Lista parametrow:

#

# Xvalue - dolna wartosc parametru puntkowego. 

#

###############################################################################

#

# Wyswietla wszystkie pliki ktore zawieraja fraze "Submited score", nastepnie

# zapisuje je do pliku files.csv. 

#

grep "Submited score" * > files

#

# Wczytuje plik i zamieniam w nim "|" na spacje

#

sed -e 's/|/   /g' files > files2
#

# Wykorzystuje jezyk AWK do manipulacji danymi z plikow wejsciowych. 

#

awk '

{ printf "%d ", $7 }' files2 |awk '

{
    Xvalue = 5000;

    #

    # Petla przechodzaca po wszystkich elementach w pliku. 

    #

    for ( i = 1; i <= NF; i++ ) 

    {

        if ( $i > Xvalue ) 
        {
            printf ( $i ) >> "data";
            printf "\n" >> "data";
        }

    }

}'
#

# Usuwam niepotrzebne pliki tymczasowe. 

#
rm files
rm files2

echo "Koniec skryptu"

Jak na razie wymyslilem cos takiego. Dziala to tak ze zapisuje sobie do osobnego pliku "files" nazwy tych plikow gdzie wystapila fraza "Submited score" wraz z jej wartoscia, nastepnie zamieniam znaki | na spacje.
Czyli mam plik z nazwami i wartosciami, cos takiego:

000a8851e4c3cf354341bf0f81430058:m 250456 370 385 Submited score 161220
000e69a51d38e9e28051b0e8c8f8a8ea:m 65949 426 327 Submited score 13420
0011b0a198355b1e2d90985aa2f2c3e7:m 259412 501 389 Submited score 167070
00137c7a11f7f501dc79eebd8a8da63b:m 87842 329 296 Submited score 7010
00137c7a11f7f501dc79eebd8a8da63b:m 178490 534 428 Submited score 11480
00137c7a11f7f501dc79eebd8a8da63b:m 359975 428 404 Submited score 119860
001935d098cbd4cbd8ed007c9f293d96:m 194672 371 280 Submited score 315320
0021752f1a55563c3ba5f1f868eebcc0:m 150136 375 380 Submited score 229270
0031064c67b68b5587ad25e6b19d5ebb:m 79336 403 344 Submited score 9660
0031064c67b68b5587ad25e6b19d5ebb:m 179371 322 370 Submited score 56440
0033448ebed6363e5839b2001e3d36de:m 260406 390 431 Submited score 211690
003d751dd47ec6c17005ad314b3390c5:m 116369 331 201 Submited score 40640
0040506526bda98b3b1c051a95767654:m 337274 365 443 Submited score 530320
0047920acd93627874d8481809e49496:m 246907 470 288 Submited score 413580
00494001e66abd14577642e73033c1f8:m 180280 440 369 Submited score 205260
004bc7fa4663e92cf5010468d113a81e:m 248004 288 471 Submited score 386290
005a072e20418b096e29d423a289ce18:m 208247 282 405 Submited score 297600
005b01ecdd6d68d74298af750c8a26db:m 320719 401 252 Submited score 332450
0061823bdf0579fc86c695981991af19:m 183530 447 447 Submited score 215200
006377465dc4fc6bf73bbe5ff23a3f93:m 240817 447 417 Submited score 162890
0063c9989e1663f4f5a411341b03475e:m 193367 608 13 Submited score 321460

No i teraz bym chcial zapisac do pliku te linie ktore zawieraja wartosc po Submited score wieksza od wartosci Xvalue = 5000; W petli jak na razie zapisuje do pliku tylko same wartosci po Submited score spelniajace warunek a nie cale linie. Odpowiada za to petla


    for ( i = 1; i <= NF; i++ ) 

    {

        if ( $i > Xvalue ) 
        {
            printf ( $i ) >> "data";
            printf "\n" >> "data";
        }

    }

Czyli chodzi mi o to by zamienic w tej petli linie:
printf ( $i ) >> "data";
na taka ktora zapisze caly rekord z pliku a nie tylko wartosc.

Jakies pomysly?