Removing command line arguments from string list


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Removing command line arguments from string list
# 1  
Old 02-29-2012
Removing command line arguments from string list

I am passing a list of strings $list and want to remove all entries with --shift=number, --sort=number/number/..., --group=number/number/... Also are removed whether upper or lower case letters are used

For example the following will all be deleted from the list

Code:
--shift=12
--shift=2324
--sHIFT=6273
--sort=12/23
--sort=12/34/890
--group=12/34/5/7
--gRoup=123/4/5/7/890/234

Currently I have coded

Code:
set strLst = `echo $argv[$firstArg-$lastArg]  \
  | awk '{sub(/--shift=[0-9]*|--sort=[0-9]*|--group=[0-9]*/, "")};1'`

Of course, the --sort and --group part do not work with number sequences separated by '/'.
# 2  
Old 02-29-2012
How about this:


Code:
set strLst = `echo $argv[$firstArg-$lastArg]  \
| grep -ivE '[-]-((shift=[0-9]+)|(sort|group)=[0-9]+/[0-9]+(/[0-9]+)*)$'`


Last edited by Chubler_XL; 02-29-2012 at 10:53 PM..
# 3  
Old 02-29-2012
try this

Code:
v="$( egrep -vi 'sort|group|shft' $list)"

# 4  
Old 02-29-2012
I have tried the below but is returning nothing.

Code:
echo "--shift=3 --sort=10/12/14 --group=12/14/15 m08-npt30.ry m06-npt10.ry jcdint-z30-01.ry n06-z30.ry jcdint-z30-02.ry" | grep -iE -v '[-]-(shift=[0-9]*|group=[0-9][/0-9]*|sort=[0-9][/0-9]*)'

# 5  
Old 02-29-2012
Yes because you need a newline between each option:

With my updated version:
Code:
$ echo -e "--shift=3\n--sort=10/12/14\n--group=12/14/15\nm08-npt30.ry\nm06-npt10.ry\njcdint-z30-01.ry\nn06-z30.ry\njcdint-z30-02.ry" | grep -ivE '[-]-((shift=[0-9]+)|(sort|group)=[0-9]+/[0-9]+(/[0-9]+)*)$'
m08-npt30.ry
m06-npt10.ry
jcdint-z30-01.ry
n06-z30.ry
jcdint-z30-02.ry
$

If no newlines try putting | tr ' ' '\n' in the pipeline.
This User Gave Thanks to Chubler_XL For This Post:
# 6  
Old 02-29-2012
Quote:
Originally Posted by tarun_agrawal
try this

Code:
v="$( egrep -vi 'sort|group|shft' $list)"

I tried but getting egrep: unrecognized option '--shift=3'

Code:
set string = "--shift=3 --sort=10/12/14 --group=12/14/15 m05-npt08.xt jcdint-z30.xt m04-npt06.xt m03-npt04.xt m02-npt02.xt"

egrep -vi 'sort|group|shft' $string

egrep: unrecognized option '--shift=3'
Usage: egrep [OPTION]... PATTERN [FILE]...
Try `egrep --help' for more information.

# 7  
Old 02-29-2012
Code:
$ echo "--shift=3 --sort=10/12/14 --group=12/14/15 m08-npt30.ry " \
"m06-npt10.ry jcdint-z30-01.ry n06-z30.ry jcdint-z30-02.ry" |
tr ' ' '\n' |
grep -ivE '[-]-((shift=[0-9]+)|(sort|group)=[0-9]+/[0-9]+(/[0-9]+)*)$'
m08-npt30.ry
m06-npt10.ry
jcdint-z30-01.ry
n06-z30.ry
jcdint-z30-02.ry
$

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Matching some string in a line and removing that

I have one output file. Node: hstg1so Date: 2013/07/16 17:51:24 GMT Totals: 10608 6871 0 2208 1529 0 0 64% 0% ( 0 ) Node: hstg2so Date: 2013/07/16 17:51:25 GMT Totals: ... (3 Replies)
Discussion started by: Raza Ali
3 Replies

2. Shell Programming and Scripting

Need help to read command line arguments?

I am new to schell scripting . My objective is to write a ksh shell script that performs following tasks: - 1. Script reads all command line arguments (arguments are file names) and checks if it contains charachters "abc" in it. 2. If it contains "abc" it will execute a binary file xyz <command... (3 Replies)
Discussion started by: acmilan
3 Replies

3. Shell Programming and Scripting

Removing string between two particular strings in a line

Hi, I have a file with following format: 1|What is you name (full name)?|Character 2|How far is your school ?|Numeric Now I need to remove everything inside brackets () or . There can be more than one pair of brackets. The output file should look like: 1|What is you name?|Character... (8 Replies)
Discussion started by: ppatra
8 Replies

4. Shell Programming and Scripting

command line arguments

hi,,,, I want to create a command prompt, for example "prompt>", so my prompt need to handle commands, for example "prompt>cmd", so i want to know how to get arguments for my own commands cmd, i.e. default argc should contain arguments count and argv should point to the argument vector i.e, for... (2 Replies)
Discussion started by: vins_89
2 Replies

5. UNIX for Dummies Questions & Answers

command line arguments

hi, can someone how to accept command line arguments as a variable using in script? like: ./scriptname arguments by accept arguments, I can use it in my script? thx! (1 Reply)
Discussion started by: ikeQ
1 Replies

6. UNIX for Dummies Questions & Answers

Command line arguments.

I am working on a script wherein i need the user to enter the Build ID for eg:the command line will show enter the build ID Now on entering the build ID it should be assigned to @ARGV. How can this be done.? (1 Reply)
Discussion started by: Varghese
1 Replies

7. Shell Programming and Scripting

command line arguments

-------------------------------------------------------------------------------- I have this while loop and at the end I am trying to get it to tell me the last argument I entered. And with it like this all I get is the sentence with no value for $1. Now I tried moving done after the sentence... (1 Reply)
Discussion started by: skooly5
1 Replies

8. Shell Programming and Scripting

i want to list all command line arguments except

Hi all i want to list out all command line arguments except $1 i have passed to a script. Ex: sh cmdline.sh one two three four five o/p: two three four five (3 Replies)
Discussion started by: naree
3 Replies

9. UNIX for Dummies Questions & Answers

arguments in command line

Hi all, How many arguments can we pass while testing a prgm at command line.. I encountered an issue while passing 10 arguments. For $10 its taking argument passed for $1 followed by 'zero'. can we pass more than 9 arguments /Is there any other way. Thanks, rrs (6 Replies)
Discussion started by: rrs
6 Replies

10. Programming

command line arguments

Hi How to pass multi line text as a command line argument to a program. (i.e) ./a.out hi this is sample 0 file1 where hi this is sample should be stored in argv 0 in argv and so on... (3 Replies)
Discussion started by: bankpro
3 Replies
Login or Register to Ask a Question

Featured Tech Videos