Grep echo awk print all output on one line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep echo awk print all output on one line
# 36  
Old 03-24-2016
No need to apologize! You've gone way above and beyond anything I ever expected.

I made the change you suggested and that works! I can search as specific as I want and every search returns properly!

Is it possible to make -vwithout any term after it work like *?

Code:
Ex:
clmbn-eng2.eng:~% cver -c -v
Unrecognized or incomplete command.
Use -h for help.

Incidentally, this works, which I like:
Code:
clmbn-eng2.eng:~% cver -v
Unrecognized or incomplete command.
Use -h for help.

Code:
cver () {
X=""
case $1 in
...
(*) echo "Unrecognized or incomplete command.\nUse -h for help.";;
  esac

clmbn-eng2.eng:~% cver
Unrecognized or incomplete command.
Use -h for help.


Last edited by rwalker; 03-24-2016 at 05:23 AM.. Reason: typos
# 37  
Old 03-24-2016
Quote:
Originally Posted by rwalker
.
.
.
Is it possible to make -vwithout any term after it work like *?
.
.
.
I don't understand. Actually, -v doesn't mean a thing, it's just a placeholder. Any string as a second parameter will do (unless you implement some testing/validation).
# 38  
Old 03-24-2016
Ah yes, that's right! It's no biggie, I'd rather not go through the trouble of all of that. Everything works exactly as it needs to.

Here it is completed:

Code:
cver () {
X=""
case $1 in
  ("-b") X="bb";;
  ("-c") X="cpe";;
  ("-e") X="exxx";;
  ("-k") X="core";;
  ("-o") X="oxxx";;
  ("-h"|help) echo "'cver' allows us to see the software version running on all company Juniper devices, and sorts them by software version.
  'cver' is especially helpful in determining which devices require a software upgrade.

  Options are -b for bb, -c for cpe, -e for exxx, -k for core, and -o for oxxx.

  Use -v to find specific software versions. Ex: cver -c -v 12
  Note: -v only works when accompanied by another command.

  Use grep to find specific device names. Ex: cver -c | grep oxxx
  ";;
  (*) echo "Unrecognized or incomplete command.\nUse -h for help.";;
  esac
	[ $X ] && awk -vSRCH="$3" '/JUNOS/ && /boot/ && $5 ~ "^[[]" SRCH {sub ("/show.version", "", FILENAME); sub (".*/", "", FILENAME); print $5 " " FILENAME}' 
  ~/svn/nw_config_data/*${X}.domain.net/show.version | sort
   }

---------- Post updated at 06:04 AM ---------- Previous update was at 04:50 AM ----------

Ok, so I'm trying to set ?as a possible command to show help, but it only works if I put it in quotations.

(?|"-h"|help)

Code:
clmbn-eng2.eng:~% cver ?
zsh: no matches found: ?
clmbn-eng2.eng:~% cver "?"
'cver' allows us to see the software version...

Escaping it with \doesn't work. Tried variations with []. No luck. Tried setting (?)as it's own command in the case. No luck.

I poked around for other people's casestatements and I see them using ?without issue, so not sure if it's a compatibility issue or something to do with how ?is assigned in my shell?

---------- Post updated at 06:18 AM ---------- Previous update was at 06:04 AM ----------

And I see that ?is used for single character lookup...so, how do I get around that?

Last edited by rwalker; 03-24-2016 at 07:20 AM.. Reason: neatness
# 39  
Old 03-24-2016
Double quote the ? in the case statement.
# 40  
Old 03-24-2016
Forgot to add I tried that too and no luck.
Code:
("?"|"-h"|help)

clmbn-eng2.eng:~% cver ?
zsh: no matches found: ?

# 41  
Old 03-24-2016
OK; I can't help with zsh.
# 42  
Old 03-24-2016
No problem. I'm taking my work computer home for my weekend so I can spend more time researching this. Now that everything works, there's other little things I want to be able to add in that shouldn't break it (hopefully!)

Adding ?for help is one (if possible).

I also want to add ("-a"|all)as well so if someone really wants to pull nearly 500 devices they can, they'll just need to adjust their scrollback buffer to accommodate the list.

I might poke around for other little things, maybe consult some other network engineers for suggestions. I don't think it'll get too crazy, but I have time to sort through any of that stuff before the boss gets back from vacation and we can review and implement.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Echo print on same line while loop using variable

Currently using below script but echo it print the output in two line. Input file all-vm-final-2.txt CEALA08893 SDDC_SCUN DS_SIO_Workload_SAPUI_UAT_01 4 CEALA09546 SDDC_SCUN DS-SIO-PD5_Workload_UAT_SP1_Flash_07 4 CEALA09702 SDDC_SCUN DS-VSAN-RMP-WORKLOAD01 4 DEALA08762 SDDC_LDC... (3 Replies)
Discussion started by: ranjancom2000
3 Replies

2. Shell Programming and Scripting

(n)awk: print regex search output lines in one line

Hello. I have been looking high and low for the solution for this. I seems there should be a simple answer, but alas. I have a big xml file, and I need to extract certain information from specific items. The information I need can be found between a specific set of tags. let's call them... (2 Replies)
Discussion started by: Tobias-Reiper
2 Replies

3. Shell Programming and Scripting

Print awk output in same line ,For loop

My code is something like below. #/bin/bash for i in `ps -ef | grep pmon | grep -v bash | grep -v grep | grep -v perl | grep -v asm | grep -v MGMT|awk '{print $1" "$8}'` do echo $i ORACLE_SID=`echo $line | awk '{print $2}'` USERNAME=`echo $line | awk '{print $1}'` done ============= But... (3 Replies)
Discussion started by: tapia
3 Replies

4. Shell Programming and Scripting

Echo printing a line in 2 lines; expected to print in one line

Dear All, fileName: therm.txt nc3h7o2h 7/27/98 thermc 3h 8o 2 0g 300.000 5000.000 1390.000 41 1.47017550e+01 1.71731699e-02-5.91205329e-06 9.21842570e-10-5.36438880e-14 2 -2.99988556e+04-4.93387892e+01 2.34710908e+00 4.34517484e-02-2.65357553e-05 3 ... (7 Replies)
Discussion started by: linuxUser_
7 Replies

5. Shell Programming and Scripting

Use less pipe for grep or awk sed to print the line not include xx yy zz

cat file |grep -v "xx" | grep -v "yy" |grep -v "zz" (3 Replies)
Discussion started by: yanglei_fage
3 Replies

6. Shell Programming and Scripting

Print (echo) variable in a single line

Hi, I have written this code ------------------------------------------------ # !/bin/ksh i=0 while do j=$i while do echo -e $j #printf "%d",$j j=`expr $j - 1` done echo i=`expr $i + 1` done ---------------------------------------------------- The ouput which... (2 Replies)
Discussion started by: rac
2 Replies

7. UNIX for Dummies Questions & Answers

Grep /Awk letters X - X in every line and print it as a mac address

hey i m kinda new to this so i will appreciate any help , i have this list of values: pwwn = 0x50012482009cd7a7 nwwn=0x50012482009cd7a6 port_id = 0x280200 pwwn = 0x5001248201bcd7a7 nwwn=0x5001248201bcd7a6 port_id = 0x280300 pwwn = 0x50012482009c51ad nwwn=0x50012482009c51ac port_id =... (4 Replies)
Discussion started by: boaz733
4 Replies

8. Shell Programming and Scripting

Awk+Grep Input file needs to match a column and print the entire line

I'm having problems since few days ago, and i'm not able to make it works with a simple awk+grep script (or other way to do this). For example, i have a input file1.txt: cat inputfile1.txt 218299910417 1172051195 1172070231 1172073514 1183135117 1183135118 1183135119 1281440202 ... (3 Replies)
Discussion started by: poliver
3 Replies

9. Shell Programming and Scripting

awk help required to group output and print a part of group line and original line

Hi, Need awk help to group and print lines to format the output as shown below INPUT FORMAT set echo on set heading on set spool on /* SCHEMA1 */ CREATE TABLE T1; /* SCHEMA1 */ CREATE TABLE T2; /* SCHEMA1 */ CREATE TABLE T3; /* SCHEMA1 */ CREATE TABLE T4; /* SCHEMA1 */ CREATE TABLE T5;... (5 Replies)
Discussion started by: rajan_san
5 Replies

10. UNIX for Dummies Questions & Answers

How do I output or echo NONE if grep does not find anything?

I am performing a grep command and I need to know how to echo "NONE" or "0" to my file if grep does not find what i am looking for. echo What i found >> My_File grep "SOMETHING" >> My_File I am sure this is easy, I am sort of new at this! Thanks (2 Replies)
Discussion started by: jojojmac5
2 Replies
Login or Register to Ask a Question