Sponsored Content
Top Forums Shell Programming and Scripting Rearrange groups of lines from several files Post 303038810 by RudiC on Saturday 14th of September 2019 06:14:04 AM
Old 09-14-2019
Why that difficult? Try
Code:
awk '
BEGIN { FS = OFS = "|" }

/^TESR/ {TESR[++CNTTESR] = $0}
/^RGSS/ {RGSS[++CNTRGSS] = $0}
/^FNMR/ {FNMR[++CNTFNMR] = $0}
/^STPE/ {STPE[++CNTSTPE] = $0}
/^GX../ {GX__[++CNTGX__] = $0}
/^FS../ {FS__[++CNTFS__] = $0}

END     {for (i=1; i<=CNTSTPE; i++) print STPE[i]
         for (i=1; i<=CNTFS__; i++) print FS__[i]
         for (i=1; i<=CNTGX__; i++) print GX__[i]
         for (i=1; i<=CNTTESR; i++) print TESR[i]
         for (i=1; i<=CNTRGSS; i++) print RGSS[i]
         for (i=1; i<=CNTFNMR; i++) print FNMR[i]
        }
 ' file[123]

to get exactly your desired output.




EDIT: Or even
Code:
awk '
BEGIN   {FS = OFS = "|"
         MX = split ("STPE|FS..|GX..|TESR|RGSS|FNMR", KEYS)
        }

        {for (i=1; i<=MX; i++) if ($1 ~ KEYS[i])        {RES[i,++CNT[i]] = $0 
                                                         break
                                                        }
        }
END     {for (i=1; i<=MX; i++) 
           for (j=1; j<=CNT[i]; j++) print RES[i, j]
        }
' file[123]


Last edited by RudiC; 09-14-2019 at 07:37 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Rearrange data from 2 files

Dear All, I have the below files A file contains 1473 1649 1670 1758 1767 1784 B file contains 1242 1246 1264 1268 1284 (3 Replies)
Discussion started by: yahyaaa
3 Replies

2. Shell Programming and Scripting

Breaking long lines into (characters, newline, space) groups

Hello, I am currently trying to edit an ldif file. The ldif specification states that a newline followed by a space indicates the subsequent line is a continuation of the line. So, in order to search and replace properly and edit the file, I open the file in textwrangler, search for "\r " and... (14 Replies)
Discussion started by: rowie718
14 Replies

3. UNIX for Dummies Questions & Answers

Remove groups of repeating lines

I know uniq exists, but am not sure how to remove repeating lines when they are groups of two different lines repeating themselves, without using sort. I need them to be sorted in the original order, just to remove repeats. cd /media/AUDIO/WAVE/9780743518673/mp3 ~/Desktop/mp3-to-m4b... (1 Reply)
Discussion started by: glev2005
1 Replies

4. UNIX for Dummies Questions & Answers

Merge files into groups of 10000

Hi Guys, First post! I've seen a few options but dont know the most efficient: I have a directory with a 150,000+ text files in it I want to merge them into files contain 10,000 files with a carriage return in between. Thanks P The following is an example but doesnt limit the... (2 Replies)
Discussion started by: peh
2 Replies

5. Shell Programming and Scripting

awk- looping through groups of lines

Hello, I'm working with a file that has three columns. The first one represents a certain channel and the third one a timestamp (second one is not important). Example input is as follows: 2513 12 10.771 2513 13 10.771 2513 14 10.771 2513 15 10.771 2644 8 10.771 ... (6 Replies)
Discussion started by: acsg
6 Replies

6. Shell Programming and Scripting

Move groups of files

G'day all, I'm have tons of image files I need to process, but I don't need to process all of them and it would take a long time to process them all if I don't have to. The images are arranged in folders like this... folder1/RawData folder2/RawData folder3/RawData ... folderN/RawData ... (2 Replies)
Discussion started by: Dan_S
2 Replies

7. Shell Programming and Scripting

Rearrange Lines with awk

I need to rearrange the lines in the input file in the example below: Input: LG1 R500 A-170 F1:81 F1:22 F2:32 F1:71 LG1 R700 A-203 F2:17 E2:18 LG1 R700 B-224 E1:9 LG2 R500 C-235 E2:9 F2:17 Output: LG1 R500 A-170 F1:81 LG1 R500 A-170 F1:22 LG1 R500 A-170 F2:32 LG1 R500 A-170... (2 Replies)
Discussion started by: aydj
2 Replies

8. Shell Programming and Scripting

Match single line in file1 to groups of lines in file2

I have two files. File 1 is a two-column index file, e.g. comp11084_c0_seq6:130-468(-) comp12746_c0_seq3:140-478(+) comp11084_c0_seq3:201-539(-) comp12746_c0_seq2:191-529(+) File 2 is a sequence file with headers named with the same terms that populate file 1. ... (1 Reply)
Discussion started by: pathunkathunk
1 Replies

9. Shell Programming and Scripting

Print values within groups of lines with awk

Hello to all, I'm trying to print the value corresponding to the words A, B, C, D, E. These words could appear sometimes and sometimes not inside each group of lines. Each group of lines begins with "ZYX". My issue with current code is that should print values for 3 groups and only is... (6 Replies)
Discussion started by: Ophiuchus
6 Replies

10. Shell Programming and Scripting

Best way to sort file with groups of text of 4-5 lines by the first one

Hi, I have some data I have taken from the internet in the following scheme: name direction webpage phone number open hours menu url book url name ... Of course the only line that is mandatory is the name wich is the one I want to sort by. I have the following sed & awk script that... (3 Replies)
Discussion started by: devmsv
3 Replies
NSS-SYSTEMD(8)                                                      nss-systemd                                                     NSS-SYSTEMD(8)

NAME
nss-systemd, libnss_systemd.so.2 - Provide UNIX user and group name resolution for dynamic users and groups. SYNOPSIS
libnss_systemd.so.2 DESCRIPTION
nss-systemd is a plug-in module for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc), providing UNIX user and group name resolution for dynamic users and groups allocated through the DynamicUser= option in systemd unit files. See systemd.exec(5) for details on this option. This module also ensures that the root and nobody users and groups (i.e. the users/groups with the UIDs/GIDs 0 and 65534) remain resolvable at all times, even if they aren't listed in /etc/passwd or /etc/group, or if these files are missing. To activate the NSS module, add "systemd" to the lines starting with "passwd:" and "group:" in /etc/nsswitch.conf. It is recommended to place "systemd" after the "files" or "compat" entry of the /etc/nsswitch.conf lines so that /etc/passwd and /etc/group based mappings take precedence. EXAMPLE
Here is an example /etc/nsswitch.conf file that enables nss-systemd correctly: passwd: compat mymachines systemd group: compat mymachines systemd shadow: compat hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis SEE ALSO
systemd(1), systemd.exec(5), nss-resolve(8), nss-myhostname(8), nss-mymachines(8), nsswitch.conf(5), getent(1) systemd 237 NSS-SYSTEMD(8)
All times are GMT -4. The time now is 07:19 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy