Sponsored Content
Full Discussion: xargs expr ...+
Top Forums Shell Programming and Scripting xargs expr ...+ Post 302704237 by alister on Friday 21st of September 2012 09:25:44 AM
Old 09-21-2012
When a pipeline's output is just a single value, there's usually no need or benefit in using xargs. A simple command substitution will do.

I said "usually" above because xargs treats quotes specially and that could be useful in some scenarios (though not this one, which only produces numeric strings).

Code:
expr $(ls -l | wc -l) - 3

Why you're using ls' long format just to count lines is puzzling, but not germane to my point.

Regards,
Alister

Last edited by alister; 09-21-2012 at 10:35 AM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

expr

Hello! I want to evaluate some mathematical expressions in a script and I try to use 'expr' command. Unfortunatally, when I have, for example, expr 8.2 + 6 the result is 'expr: non-numeric argument' Why ? I work on SunOs 5.7. Thanks in advance Nathe (5 Replies)
Discussion started by: Nathe
5 Replies

2. Red Hat

how to use expr

i am new to shell programming, currently using redhat linux of version 2.4.20-8. i have problem in executing expr command in the following shell script $ x=5 $ x='expr $x + 1' $ echo $x the output is displaying always expr $x + 1 Pls guide me for the above query (3 Replies)
Discussion started by: saikumarm80
3 Replies

3. Shell Programming and Scripting

test expr VS [ expr ]

What is the difference between test expr VS . For example : if test 5 -eq 6 echo "Wrong" and if echo "Wrong" bot will give the same output as Wrong. Now, what is the difference between these two? though they are producing the same result why we need two? Any answer will be... (2 Replies)
Discussion started by: ashok.g
2 Replies

4. Shell Programming and Scripting

expr not working

I am trying to get some coubt through the following code. tot_ln_cnt=`wc -l ${OUTPUT_FILE_NAME}` echo "tot_ln_cnt : "$tot_ln_cnt fl_cnt=`ls -lrt *edi | wc -l` echo "fl_cnt : "$fl_cnt exclude_cnt=`expr $fl_cnt \* 2` echo "exclude_cnt : "$exclude_cnt ln_cnt=`expr $tot_ln_cnt - $exclude_cnt`... (4 Replies)
Discussion started by: mady135
4 Replies

5. Shell Programming and Scripting

expr not working

I have written below script which monitors a log file and if log file is not writting for 2 intervels then admin should be notified. ================ sh=`date | awk '{print $4}' | cut -d ":" -f1` sm=`date | awk '{print $4}' | cut -d ":" -f2` lh=`ls -l /opt/Heartbeat.log | awk '{print $8}' |... (5 Replies)
Discussion started by: paventhan
5 Replies

6. Shell Programming and Scripting

the expr \*

$ cat > mtable #!/bin/sh # #Script to test for loop # # if then echo "Error - Number missing form command line argument" echo "Syntax : $0 number" echo "Use to print multiplication table for given number" exit 1 fi n=$1 for i in 1 2 3 4 5 6 7 8 9 10 do echo "$n * $i = `expr $i \*... (1 Reply)
Discussion started by: jackel7777
1 Replies

7. UNIX for Dummies Questions & Answers

expr ?!

Hey there i want to subtract the content from $b from $a. Each variable has got 18 values (normal numbers from 0 - 99). How can i subtract them? I know i have to use the expr command, this is what i have till now: a=`cat Tabelle.dat | awk {'print $4'} | awk -F: {'print $1'}` b=`cat... (1 Reply)
Discussion started by: Mad van Bert
1 Replies

8. Shell Programming and Scripting

Error with expr - "expr: syntax error"

Hi All, I'm writing a shell script in KSH, where I want to store the filename, total record count and actual record count of all the source files. The source files reside in 4 different sub-folders under the same root folder. Below is code: #!/usr/bin/ksh... (6 Replies)
Discussion started by: jagari
6 Replies

9. Shell Programming and Scripting

If + expr

Hi I have bellow script: t1=`cat node1.txt | grep thread1 | cut -f2 -d '-'` t2=`cat node2.txt | grep thread2 | cut -f2 -d '-'` t3=`cat node1_rcat.txt | grep thread1 | cut -f2 -d '-'` t4=`cat node2_rcat.txt | grep thread2 | cut -f2 -d '-'` if ]; then echo "no restore" >> log.log... (6 Replies)
Discussion started by: primo102
6 Replies

10. Shell Programming and Scripting

Nn$( expr $n + 1)

HI there I am trying to understand Shell scripting to create my own, I am attempting a few examples can anyone tell me what this means?n=$( expr $n + 1)Tried looking on the internet, but just cannot find its anywhere :( .Help please (4 Replies)
Discussion started by: steve2015
4 Replies
xargs(1)						      General Commands Manual							  xargs(1)

Name
       xargs - construct argument list and execute command

Syntax
       xargs [flags] [ command [initial-arguments] ]

Description
       The command combines fixed initial-arguments with arguments read from standard input to execute a specified command one or more times.  The
       number of arguments read when a command is invoked and how they are combined is determined by the options specified.

       The specified command, (which can be a Shell file) is searched for using ones' $PATH specification.  If command is not specified, /bin/echo
       is used.

       Arguments  read	from  standard	input  are defined as contiguous strings of characters delimited by one or more blanks, tabs, or newlines;
       empty lines are always discarded.  Blanks and tabs can be embedded as part of an argument if they contain an escape character  or  if  they
       are  quoted.   Characters enclosed in quotes (single or double) are taken literally, and the delimiting quotes are removed; a backslash ()
       escapes the next character.

Options
       Each argument list begins with the initial-arguments, followed by arguments read from standard input, with the exception of the -i  option.
       See the description of the -i option for more information.

       The  options -i, -l, and -n determine how arguments are selected when each command is invoked.  If none of these options are specified, the
       initial-arguments are followed by arguments read continuously from standard input until the internal buffer is full; then, command executes
       with  the accumulated arguments.  This process repeats until no arguments exist.  When conflicts arise, such as the -l option used with the
       -n, the last option has precedence. The options values are as follows:

       -lnumber
	     Execute command for each non-empty number lines of arguments from standard input.	When command is invoked for the final time, it has
	     fewer  lines  of  arguments if fewer than a specified number remain.  A line ends with the first newline unless the last character of
	     the line is a blank or a tab; a trailing blank or tab signals continuation through the next non-empty line.   If  number  is  is  not
	     specified, the value 1 is assumed.  The option -x is forced.

       -ireplstr (Insert mode)
	     Execute  command for each line from standard input, taking the entire line as a single argument and inserting it in initial-arguments
	     for each occurrence of replstr.  A maximum of five arguments specified in initial-arguments can contain one  or  more  occurrence	of
	     replstr.	Blanks and tabs at the beginning of each line are discarded.  A constructed arguments cannot exceed 255 characters and the
	     option -x is a forced.  A {|} is assumed for replstr if not specified.

       -nnumber
	     Execute command using as many standard input arguments as possible, up to the specified number arguments  maximum.   Fewer  arguments
	     are used if their total size is greater than size characters, and when the last command is invoked, fewer number of arguments remain.
	     If the option -x is also include, each specified number of arguments must fit in the size limitation, or else xargs terminates execu-
	     tion.

       -t (Trace mode)
	     Echo the command and each constructed argument list to file descriptor 2 prior to their execution.

       -p (Prompt mode)
	     Asks  the user whether or not command should be executed each time command is invoked. Trace mode (-t) is turned on to print the com-
	     mand instance to be executed, followed by a ?... prompt.  A reply of y executes the command; any other response does not invoke  that
	     particular command.

       -x    Causes  the  command xargs to terminate if an argument list is greater than the specified size of characters; the option -x is forced
	     by the options -i and -l.	When the options -i, -l, or -n are included, the total length of all arguments must be within  the  speci-
	     fied size limit.

       -ssize
	     The maximum size of each argument list is set to size characters; size must be a positive integer less than or equal to 470. If -s is
	     not included, 470 is the default.	Note that the character count for size includes one extra character  for  each	argument  and  the
	     count of characters in the command name.

       -eeofstr
	     The  option  eofstr  is  taken  as the logical end-of-file string.  Underscore (_) is assumed for the logical EOF string if -e is not
	     specified.  The value -e without eofstr specified turns off the logical EOF string capability; the  underscore  is  taken	literally.
	     The command xargs reads standard input until either end-of-file or the logical EOF string is encountered.

       The command xargs terminates if it receives a return code of -1 from command or if it cannot execute command.  When command is a Shell pro-
       gram, it should explicitly exit with an appropriate value to avoid returning with -1.  See for more information.

Examples
       The following example moves all files from directory $1 to directory $2 and echoes the move command prior to executing it:

       ls $1 | xargs -i -t mv $1/{} $2/{}

       The following example combines the output of the parenthesized commands onto one line, which is then echoed to the end of file log:

       (logname; date; echo $0 $*) | xargs >>log

       In the next example, the user is prompted to specify which files in the current directory are to be archived.  The first  example  archives
       the files one at a time; the second example archives groups of files:

	 ls | xargs -p -l ar r arch

	 ls | xargs -p -l | xargs ar r arch

       The following example executes diff(1) with successive pairs of arguments originally typed as Shell arguments:

       echo $* | xargs -n2 diff

See Also
       sh(1).

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