Sponsored Content
Full Discussion: What does this command do?
Top Forums UNIX for Beginners Questions & Answers What does this command do? Post 302981334 by jlliagre on Saturday 10th of September 2016 09:22:32 AM
Old 09-10-2016
This function doing what its name and message states, it checks if the first column of the file passed as an argument contains sorted and unique values otherwise output an error message and exit in failure.

The function code could have been written a more pedagogical way but conciseness was preferred. Here is a more readable variant:

Code:
check_sorted_and_uniq() {
  if ! cmp  <(awk '{print $1}' $1 | sort | uniq) <(awk '{print $1}' $1); then
    echo "$0: file $1 is not in sorted order or has duplicates"
    exit 1;
  fi
}

The "<(...)" syntax creates a transient file that is passed to the program as an argument and which contains the result of the command being inside the parenthesis.

Note that "awk '{print $1}' $1" is simply outputting the first column of the file passed as first argument. "$1" has totally different meanings for awk and for the shell.
These 2 Users Gave Thanks to jlliagre For This Post:
 

10 More Discussions You Might Find Interesting

1. SuSE

inconsistent ls command display at the command prompt & running as a cron job

Sir, I using the following commands in a file (part of a bigger script): #!/bin/bash cd /opt/oracle/bin ls -lt | tail -1 | awk '{print $6}' >> /tmp/ramb.out If I run this from the command prompt the result is: 2007-05-16 if I run it as a cron job then... (5 Replies)
Discussion started by: rajranibl
5 Replies

2. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies

3. AIX

AIX:Command to get netaddress/subnet address command in IPv4/IP6

AIX:Command to get netaddress/subnet address command in IPv4/IP6 Can anybody help us with a command to retrieve netaddress/subnet address command in IPv4/IP6 on aix machine. net/subnet address is in the format 172.16.212.0(signifies all 255 machines in an IPv4 network) (2 Replies)
Discussion started by: rookie8278
2 Replies

4. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

5. UNIX for Advanced & Expert Users

unix command : how to insert text at the cursor location via command line?

Hi, Well my title isn't very clear I think. So to understand my goal: I have a script "test1" #!/bin/bash xvkbd -text blabla with xbindkeys, I bind F5 key in order it runs my test1 script So when I press F5, test1 runs. I'm under Emacs/Vi and I press F5 in order to have "blabla" be... (0 Replies)
Discussion started by: xib.be
0 Replies

6. UNIX for Dummies Questions & Answers

passing command output from one command to the next command in cshell

HI Guys, I hope you are well. I am trying to write a script that gets executed every time i open a shell (cshell). I have two questions about that 1) I need to enter these commands $ echo $DISPLAY $ setenv $DISPLAY output_of_echo_$display_command How can i write a... (2 Replies)
Discussion started by: kaaliakahn
2 Replies

7. Shell Programming and Scripting

SH script, variable built command fails, but works at command line

I am working with a sh script on a solaris 9 zone (sol 10 host) that grabs information to build the configuration command line. the variables Build64, SSLopt, CONFIGopt, and CC are populated in the script. the script includes CC=`which gcc` CONFIGopt=' --prefix=/ --exec-prefix=/usr... (8 Replies)
Discussion started by: oly_r
8 Replies

8. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

9. AIX

I'm facing problem with rpm command, when running the command and appears this error:

exec(): 0509-036 Cannot load program /usr/opt/freeware/bin/rpm because of the following errors: 0509-022 Cannot load module /opt/freeware/lib/libintl.a(libintl.so.1). 0509-150 Dependent module /opt/freeware/lib/libiconv.a(shr4.o) could not be loaded. 0509-152 Member... (4 Replies)
Discussion started by: Ohmkar
4 Replies

10. UNIX for Beginners Questions & Answers

Another one line command where I'd like to determine if Ubuntu or Red Hat when running command

Hello Forum, I'm making very good progress on my report thanks to the very helpful people on this forum. I've been able to successfully create my report for my Red Hat servers. But I do have a few ubuntu servers in the mix and I'd like to capture some data from them when an ssh connection is... (8 Replies)
Discussion started by: greavette
8 Replies
cmp(1)							      General Commands Manual							    cmp(1)

Name
       cmp - compare two files

Syntax
       cmp [-l | -s] file1 file2  [ skip1 ]  [ skip2 ]

Description
       The  command  compares two files.  If either file1 or file2 is `-', standard input is used for the file.  With no options, makes no comment
       if the files are the same.  If they differ, it reports the byte and line number at which the difference occurred to  standard  output.	If
       one file is an initial subsequence of the other a message including the file name is written to standard error.

       The optional skip1 and skip2 parameters are initial byte offsets into file1 and file2 respectively and may be either octal, by specifying a
       leading 0, or decimal.  When using skip1 and skip2 the offset is treated as the start of the respective input file.  Only one option may be
       specified  at  a  time.	Only one of the input files may be standard input at a time.  Because the line number is not calculated when using
       either of the options the use of either flag will increase the speed of

Options
       -l Long format:	prints the byte number (decimal) and the differing bytes (octal) for each difference.

       -s Suppresses normal output and sets the exit code only.

Diagnostics
       Exit code 0 is returned for identical files, 1 for different files, and 2 for an inaccessible or missing argument.

See Also
       comm(1), diff(1)

																	    cmp(1)
All times are GMT -4. The time now is 06:09 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy