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
# 43  
Old 03-24-2016
Without doing much testing, I think that -a is sort of the same as the empty or no-opt version before, which I proposed to solve with X="*". As you showed that the ...**... did not work for the awk input stream, X="" might do, but this is already used to tell correct from incorrect parameters. There's two possible ways to go - either prefix an * to every X definition, and remove the explicit * from the awk command, or define X=NoOpt for example at the start of the function, and preceding the awk test for this string instead for the empty string.
# 44  
Old 03-24-2016
I decided to not go with -a|allbecause it's just completely against what the cverfunction is about. It's not very practical, and I don't think anyone would want to do it anyway. It was a thing to try for fun.

I did try your suggestions, and here's what happened.

"prefix an * to every Xdefinition, and remove the explicit *from the awkcommand" gave me the ...**... issue again.

"define X=NoOpt for example at the start of the function, and preceding the awk" caused cver alone to try to search for ...NoOpt.domain.net

I'm still looking into assigning ?for help. I haven't really come across anything useful yet, but if/when I do I will share.

---------- Post updated at 05:19 PM ---------- Previous update was at 04:52 PM ----------

Alright, I believe I found the answer. ?is already in use basically, so you can't define it. It seems that using -his the command commonly used in place of ?

Answer is sort of found here
bash - How to specify -? option with GNU getopt - Unix & Linux Stack Exchange

And here
shell - bash script getopts does not recognize question mark - Stack Overflow
# 45  
Old 03-24-2016
Hi.

If it was really important to have "?" provide help text, one could experiment with looking for it before the getopt/getopts loop ... cheers, drl
# 46  
Old 03-24-2016
It's easier for me to impose my will upon others (aka make them use -h) haha! I did pick up on that getopt/getopts loop from my digging around on the internet. Good thing it's not important and -hworks.

There's a script someone created that helps in digging up customer equipment configs that's fairly robust, and whoever created it also opted for -hfor help. Since people are used to that already, I don't need to make ?work.
# 47  
Old 03-24-2016
Hi.

For anyone who wants to dig deeper into help text, ksh has a facility for creating text and processing --man augments.

The perl module Getopt/Euclid does the same for perl code.

In both cases, some special coding needs to be added, but then the man page is always with the code.

Best wishes ... cheers, drl
# 48  
Old 03-27-2016
Code to reference for post:
[ $X ] && awk -vSRCH="$3" '/JUNOS/ && /boot/ && $5 ~ "^[[]" SRCH {sub (...);

I wanted to play more with this to make -vbe the actual command someone types to search out the software version instead of using the 3rd column of the command ($3) as the thing that triggers the search.

Ex:
Code:
cver -c -v 11
[11...] device1.cpe.domain.net

Instead of:
Code:
cver -c icantypeanythingiwanthereaslongasidontputaspaceinit 11
[11...] device1.cpe.domain.net


So I got to thinking how that could be possible, and I don't know if this is possible or not, but here's what I had in mind...

1) Remove -vSRCH="$3" and SRCHfrom the awkcommand.
2) In the case, assign -vand have it contain the $5 ~ "^[[]" part of my awk
3) -v then "injects" the awkcode between &&and {sub(...) and still runs like it does now.

Again, I'm not sure if this is possible, but it would please this tiny voice in my mind saying "Yeah it works, but not the exact way you intended". I tried doing it on my own, but -vdoesn't do anything, but also doesn't break my other commands luckily.
# 49  
Old 03-27-2016
Hi.

If you are using zsh, then perhaps item 6 below may help:
Code:
Process command-line (CLI) options, arguments

        1) getopts, builtin, bash, ksh, zsh
           http://stackoverflow.com/questions/402377/using-getopts-in-bash-shell-script-to-get-long-and-short-command-line-options

        2) libgetopt-euclid-perl, creates man page, help automatically

        3) getopt, enhanced getopts, part of the util-linux, allows GNU "--"
           Examples: /usr/share/doc/util-linux/examples, 2016.03.27

        4) argp, wrapper for getopt, creates man and help (text, XML), etc.
           https://sourceforge.net/projects/argpsh/, 2016.03.27

        5) ksh getopts, enhanced, process GNU "--", create man, help, etc.
           Examples: Learning the Korn Shell, O'Reilly, 2nd, p 380ff

        6) zsh zparseopts
           man zshmodules, part of zshutil

Best wishes ... cheers, drl
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