Sponsored Content
Top Forums Shell Programming and Scripting Grep echo awk print all output on one line Post 302968881 by rwalker on Wednesday 16th of March 2016 02:38:23 AM
Old 03-16-2016
I apologize, I had assumed FILENAME was something I could change. I went back through what you suggested before, kept FILENAME, fixed the sub string and everything displayed exactly how I wanted it.

awk '/JUNOS/ && /boot/ {sub (/[^\/]* .$/, "", FILENAME); print FILENAME $5}' *cpe.domain.net/show.version

Thanks again for your assistance!

---------- Post updated at 02:38 AM ---------- Previous update was at 02:37 AM ----------

Just wanted to do a follow up since I'm at work and have had more time to play with this.

This script awk '/JUNOS/ && /boot/ {sub (/[^\/]* .$/, "", FILENAME); print FILENAME $5}' *cpe.domain.net/show.version got me started on what the boss wanted me to do.

Output:
Code:
device1-e0.cpe.domain.net/show.version[11.4R8.5]
device2-e0.cpe.domain.net/show.version[11.4R10.3]
device3-e1.cpe.domain.net/show.version[11.4R10.3]
device4-e0.cpe.domain.net/show.version[11.4R10.3]
device5-e1.cpe.domain.net/show.version[11.4R10.3]
device6-e0.cpe.domain.net/show.version[11.4R7.5]
device7-e1.cpe.domain.net/show.version[11.4R7.5]
device8-e0.cpe.domain.net/show.version[11.4R8.5]

From there, I had to change the way this prints so that it shows column 5 of show.version first, followed by a space, then the device name. After that, the boss wanted me to sort by the software version. Lastly, that script above left in some output I wasn't too fond of, particularly in showing /show.version at the end of each device name, so I had to cut that out. Below is the modified script meeting all the requirements, along with a sample of the output.

Script:
awk '/JUNOS/ && /boot/ {sub (/[^\/]* .$/, "", FILENAME); print $5 " " FILENAME}' *cpe.domain.net/show.version | sort -k5 | cut -d / -f 1

Output:
Code:
[10.0R4.7] device1-r0.cpe.domain.net
[10.0R4.7] device2-r0.cpe.domain.net
[10.0R4.7] device3.cpe.domain.net
[10.0R4.7] device4.cpe.domain.net
[10.0S6.1] device5-e0.cpe.domain.net
[10.0S6.1] device6-e0.cpe.domain.net
[10.1R4.4] device7-e0.cpe.domain.net
[10.1S1.3] device8.cpe.domain.net
[10.4R3.4] device9-r0.cpe.domain.net


Thanks again, RudiC! I definitely like the awk approach instead of the one I initially posted. Maybe I can get the boss on board with doing it that way too.
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
HOSTNAME(1)						     Linux Programmer's Manual						       HOSTNAME(1)

NAME
hostname - show or set the system's host name domainname - show or set the system's NIS/YP domain name dnsdomainname - show the system's DNS domain name nisdomainname - show or set system's NIS/YP domain name ypdomainname - show or set the system's NIS/YP domain name nodename - show or set the system's DECnet node name SYNOPSIS
hostname [-v] [-a] [--alias] [-d] [--domain] [-f] [--fqdn] [-i] [--ip-address] [--long] [-s] [--short] [-y] [--yp] [--nis] [-n] [--node] hostname [-v] [-F filename] [--file filename] [hostname] domainname [-v] [-F filename] [--file filename] [name] nodename [-v] [-F filename] [--file filename] [name] hostname [-v] [-h] [--help] [-V] [--version] dnsdomainname [-v] nisdomainname [-v] ypdomainname [-v] DESCRIPTION
Hostname is the program that is used to either set or display the current host, domain or node name of the system. These names are used by many of the networking programs to identify the machine. The domain name is also used by NIS/YP. GET NAME When called without any arguments, the program displays the current names: hostname will print the name of the system as returned by the gethostname(2) function. domainname, nisdomainname, ypdomainname will print the name of the system as returned by the getdomainname(2) function. This is also known as the YP/NIS domain name of the system. nodename will print the DECnet node name of the system as returned by the getnodename(2) function. dnsdomainname will print the domain part of the FQDN (Fully Qualified Domain Name). The complete FQDN of the system is returned with host- name --fqdn. SET NAME When called with one argument or with the --file option, the commands set the host name, the NIS/YP domain name or the node name. Note, that only the super-user can change the names. It is not possible to set the FQDN or the DNS domain name with the dnsdomainname command (see THE FQDN below). The host name is usually set once at system startup in /etc/rc.d/rc.inet1 or /etc/init.d/boot (normally by reading the contents of a file which contains the host name, e.g. /etc/hostname). THE FQDN You can't change the FQDN (as returned by hostname --fqdn) or the DNS domain name (as returned by dnsdomainname) with this command. The FQDN of the system is the name that the resolver(3) returns for the host name. Technically: The FQDN is the name gethostbyname(2) returns for the host name returned by gethostname(2). The DNS domain name is the part after the first dot. Therefore it depends on the configuration (usually in /etc/host.conf) how you can change it. Usually (if the hosts file is parsed before DNS or NIS) you can change it in /etc/hosts. OPTIONS
-a, --alias Display the alias name of the host (if used). -d, --domain Display the name of the DNS domain. Don't use the command domainname to get the DNS domain name because it will show the NIS domain name and not the DNS domain name. Use dnsdomainname instead. -F, --file filename Read the host name from the specified file. Comments (lines starting with a `#') are ignored. -f, --fqdn, --long Display the FQDN (Fully Qualified Domain Name). A FQDN consists of a short host name and the DNS domain name. Unless you are using bind or NIS for host lookups you can change the FQDN and the DNS domain name (which is part of the FQDN) in the /etc/hosts file. -h, --help Print a usage message and exit. -i, --ip-address Display the IP address(es) of the host. -n, --node Display the DECnet node name. If a parameter is given (or --file name ) the root can also set a new node name. -s, --short Display the short host name. This is the host name cut at the first dot. -V, --version Print version information on standard output and exit successfully. -v, --verbose Be verbose and tell what's going on. -y, --yp, --nis Display the NIS domain name. If a parameter is given (or --file name ) then root can also set a new NIS domain. FILES
/etc/hosts AUTHOR
Peter Tobias, <tobias@et-inf.fho-emden.de> Bernd Eckenfels, <net-tools@lina.inka.de> (NIS and manpage). Steve Whitehouse, <SteveW@ACM.org> (DECnet support and manpage). net-tools 28 Jan 1996 HOSTNAME(1)
All times are GMT -4. The time now is 02:58 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy