Sponsored Content
Top Forums Shell Programming and Scripting Uniq or sort -u or similar only between { } Post 302924248 by MadeInGermany on Friday 7th of November 2014 07:34:32 AM
Old 11-07-2014
Code:
awk '
/\}/ {block=0; delete S}
(block==1) {
  if ($0 in S) {next} else {S[$0]}
}
{print}
/\{/ {block=1}
' input

The array S stores all encountered strings (where string is $0 i.e. the current line). At the end of the block it is deleted, so each block is separate.
The following stores the previous value in a simple variable S, and will only suppress adjacent duplicate lines.
Code:
awk '
/\}/ {block=0; found=0}
(block==1) {
  if (found==1 && $0==S) {next} else {S=$0; found=1}
}
{print}
/\{/ {block=1}
' input

The following input file demonstrates the difference:
Code:
{
   aaa
   bbb
   aaa
}

aaa
bbb
aaa

{
   aaa
   aaa
   ccc
}

NB awk uses ERE, and { and } have a special meaning. So it should be \{ and \}.
Then in principal my 1st sample is identical with Rudi's 2nd sample.

Last edited by MadeInGermany; 11-07-2014 at 08:43 AM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sort/uniq

I have a file: Fred Fred Fred Jim Fred Jim Jim If sort is executed on the listed file, shouldn't the output be?: Fred Fred Fred Fred Jim Jim Jim (3 Replies)
Discussion started by: jimmyflip
3 Replies

2. UNIX for Dummies Questions & Answers

Help with Last,uniq, sort and cut

Using the last, uniq, sort and cut commands, determine how many times the different users have logged in. I know how to use the last command and cut command... i came up with last | cut -f1 -d" " | uniq i dont know if this is right, can someone please help me... thanks (1 Reply)
Discussion started by: jay1228
1 Replies

3. Shell Programming and Scripting

sort and uniq in perl

Does anyone have a quick and dirty way of performing a sort and uniq in perl? How an array with data like: this is bkupArr BOLADVICE_VN this is bkupArr MLT6800PROD2A this is bkupArr MLT6800PROD2A this is bkupArr BOLADVICE_VN_7YR this is bkupArr MLT6800PROD2A I want to sort it... (4 Replies)
Discussion started by: reggiej
4 Replies

4. UNIX for Dummies Questions & Answers

match similar rows. uniq?

hi i have data which is in two columns (such as below). i need to compare two rows against each other and if one row matches the other row (except for different case), and their values in the second column are different, then it prints out one of the rows (either is fine). here is an... (5 Replies)
Discussion started by: Streetrcr
5 Replies

5. Shell Programming and Scripting

Help with Uniq and sort

The key is first field i want only uniq record for the first field in file. I want the output as or output as Appreciate help on this (4 Replies)
Discussion started by: pinnacle
4 Replies

6. Shell Programming and Scripting

sort | uniq question

Hello, I have a large data file: 1234 8888 bbb 2745 8888 bbb 9489 8888 bbb 1234 8888 aaa 4838 8888 aaa 3977 8888 aaa I need to remove duplicate lines (where the first column is the duplicate). I have been using: sort file.txt | uniq -w4 > newfile.txt However, it seems to keep the... (11 Replies)
Discussion started by: palex
11 Replies

7. Shell Programming and Scripting

Sort and uniq after comparision

Hi All, I have a text file with the format shown below. Some of the records are duplicated with the only exception being date (Field 15). I want to compare all duplicate records using subscriber number (field 7) and keep only those records with greater date. ... (1 Reply)
Discussion started by: nua7
1 Replies

8. Shell Programming and Scripting

Sort uniq or awk

Hi again, I have files with the following contents datetime,ip1,port1,ip2,port2,number How would I find out how many times ip1 field shows up a particular file? Then how would I find out how many time ip1 and port 2 shows up? Please mind the file may contain 100k lines. (8 Replies)
Discussion started by: LDHB2012
8 Replies

9. UNIX for Dummies Questions & Answers

Uniq and sort -u

Hello all, Need to pick your brains, I have a 10Gb file where each row is a name, I am expecting about 50 names in total. So there are a lot of repetitions in clusters. So I want to do a sort -u file Will it be considerably faster or slower to use a uniq before piping it to sort... (3 Replies)
Discussion started by: senhia83
3 Replies

10. Shell Programming and Scripting

Sort & Uniq -u

Hi All, Below the actual file which i like to sort and Uniq -u /opt/oracle/work/Antony/Shell_Script> cat emp.1st 2233|a.k. shukula |g.m. |sales |12/12/52 |6000 1006|chanchal singhvi |director |sales |03/09/38 |6700... (8 Replies)
Discussion started by: Antony Ankrose
8 Replies
embedded_su(1M) 														   embedded_su(1M)

NAME
embedded_su - allow an application to prompt for credentials and execute commands as the super user or another user SYNOPSIS
/usr/lib/embedded_su [-] [ username [ arg...]] The embedded_su command allows an application to prompt the user for security credentials and then use those credentials to execute a pro- gram as another user or role (see rbac(5) for information on role-based access control). The default username is root (super user). embedded_su is identical to su(1M), except that the user interaction is packaged in a form suitable for another program to interpret and display. Typically, embedded_su would be used to allow a graphical program to prompt for the super user password and execute a command as the super user, without requiring that the requesting program be run as the super user. PROTOCOL embedded_su implements a simple protocol over standard input, standard output, and standard error. This protocol consists of three phases, roughly corresponding to PAM initialization, the PAM dialog, and PAM completion. Phase 1: Initialization After starting embedded_su, the application must send an initialization block on embedded_su's standard input. This block is a text block, as described under "Text Blocks". There are currently no initialization parameters defined; the application should send an empty block by sending a line consisting solely of a period (.). Phase 2: Conversation embedded_su then emits zero or more conversation blocks on its standard output. Each conversation block may require zero or more responses. A conversation block starts with a line consisting of the word CONV, followed by whitespace, followed by the number of messages in the con- versation block as a decimal integer. The number of messages may be followed by whitespace and additional data. This data, if present, must be ignored. Each message consists of a line containing a header followed by a text block, as described under "Text Blocks". A single newline is appended to each message, allowing the message to end with a line that does not end with a newline. A message header line consists of a PAM message style name, as described in pam_start(3PAM). The message header values are: PAM_PROMPT_ECHO_OFF The application is to prompt the user for a value, with echoing disabled. PAM_PROMPT_ECHO_ON The application is to prompt the user for a value, with echoing enabled. PAM_ERROR_MSG The application is to display the message in a form appropriate for displaying an error. PAM_TEXT_INFO The application is to display the message in a form appropriate for general information. The PAM message style may be followed by whitespace and additional data. This data, if present, must be ignored. After writing all of the messages in the conversation block, if any of them were PAM_PROMPT_ECHO_OFF or PAM_PROMPT_ECHO_ON, embedded_su waits for the response values. It expects the response values one per line, in the order the messages were given. Phase 3: Completion After zero or more conversation blocks, embedded_su emits a result block instead of a conversation block. Upon success, embedded_su emits a single line containing the word "SUCCESS". The word SUCCESS may be followed by whitespace and additional data. This data, if present, must be ignored. Upon failure, embedded_su emits a single line containing the word "ERROR", followed by a text block as described under "Text Bocks". The text block gives an error message. The word ERROR may be followed by whitespace and additional data. This data, if present, must be ignored. Text Blocks Initialization blocks, message blocks, and error blocks are all text blocks. These are blocks of text that are terminated by a line con- taining a single period (.). Lines in the block that begin with a "." have an extra "." prepended to them. INTERNATIONALIZATION All messages are localized to the current locale; no further localization is required. SECURITY embedded_su uses pam(3PAM) for authentication, account management, and session management. Its primary function is to export the PAM con- versation mechanism to an unprivileged program. Like su(1M), the PAM configuration policy can be used to control embedded_su. The PAM ser- vice name used is "embedded_su". embedded_su is almost exactly equivalent to su(1M) for security purposes. The only exception is that it is slightly easier to use embed- ded_su in writing a malicious program that might trick a user into providing secret data. For those sites needing maximum security, poten- tially at the expense of application functionality, the EXAMPLES section shows how to disable embedded_su. EXAMPLES
In the following examples, left angle brackets (<<<) indicate a line written by embedded_su and read by the invoking application. Right angle brackets (>>>) indicate a line written by the application and read by embedded_su. Example 1: Executing a command with the Correct Password The following example shows an attempt to execute "somecommand" as "someuser", with the correct password supplied: /usr/lib/embedded_su someuser -c somecommand >>>. <<<CONV 1 <<<PAM_PROMPT_ECHO_OFF <<<Password: <<<. >>>[ correct password ] <<<SUCCESS [ somecommand executes ] Example 2: Executing a command with the Incorrect Password The following example shows an attempt to execute "somecommand" as "someuser", with the incorrect password supplied: /usr/lib/embedded_su someuser -c somecommand >>>. <<<CONV 1 <<<PAM_PROMPT_ECHO_OFF <<<Password: <<<. >>>[ incorrect password ] [ delay ] <<<ERROR <<<embedded_su:Sorry <<<. [ exit ] Example 3: Message Examples A pam_message structure with msg_style equal to PAM_TEXT_INFO and msg equal to "foo" produces: PAM_TEXT_INFO foo . A pam_message structure with msg_style equal to PAM_ERROR_MESSAGE and msg equal to "bar " produces: PAM_ERROR_MESSAGE bar [ blank line ] . A pam_message structure with msg_style equal to PAM_ERROR_MESSAGE and msg equal to "aaa bbb" produces: PAM_ERROR_MESSAGE aaa bbb . A pam_message structure with msg_style equal to PAM_TEXT_INFO and msg equal to "" produces: PAM_TEXT_INFO [ blank line ] . A pam_message structure with msg_style equal to PAM_TEXT_INFO and msg equal to NULL produces: PAM_TEXT_INFO . Example 4: Disabling embedded_su To disable embedded_su, add a line to the /etc/pam.conf file similar to: embedded_su auth requisite pam_deny.so.1 See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ |Interface Stability |Stable | +-----------------------------+-----------------------------+ su(1M), pam(3PAM), pam_start(3PAM), attributes(5), rbac(5) 20 Apr 2005 embedded_su(1M)
All times are GMT -4. The time now is 05:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy