BEGIN DSJOB
Identifier "LA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
........
........
BEGIN DSJOB
Identifier "NA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
........
........
........
..........
My output should be:
LA.txt
BEGIN DSJOB
Identifier "LA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
NA.txt
BEGIN DSJOB
Identifier "NA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
When the statement print > f is run, the file referred to by the expression f will be clobbered the first time and the file will remain open until the end of the awk program or until the file is explicitly closed by close statement. All statements writing to this file during that period will append to it.
print >> f is similar but the file will be opened in append mode.
Strange enough. I do confirm the citations from the awk man page. But, executing Franklin52's contruct (with pamu's addition), LA.txt will contain 2 empty lines, while NA.txt is correctly written to. Using two >, both files are OK.
awk version: mawk 1.3.3
After using two >, both files are getting created but it also has some unwanted data. such as ......
Solution provided by raj_saini20 in post 2 works perfectly here...
$ awk -F\" '/BEGIN DSJOB/{s=$0;getline;f=$(NF-1)".txt";print s > f}{print >> f} /END DSJOB/{close(f)}' test_temp
$ cat LA.txt
BEGIN DSJOB
Identifier "LA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
........
........
$ cat NA.txt
BEGIN DSJOB
Identifier "NA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
........
........
........
..........
Am sorry Pamu..
1> For missing line "END DSJOB" , i had missed something here [ ORS ];
2> For me both the files are getting generated...
Input file : test2
BEGIN DSJOB
Identifier "LA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
BEGIN DSJOB
Identifier "NA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
BEGIN DSJOB
Identifier "LA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
........
dfdfds
........
BEGIN DSJOB
Identifier "NA"
DateModified "2011-10-28"
TimeModified "11.10.02"
BEGIN DSRECORD
Identifier "ROOT"
BEGIN DSSUBRECORD
Owner "APT"
Name "RecordJobPerformanceData"
Value "0"
END DSSUBRECORD
END DSRECORD
END DSJOB
........
........
sdfds
........
..........