How to print last field ouput in Linux?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to print last field ouput in Linux?
# 1  
Old 03-01-2020
How to print last field ouput in Linux?

Hi All,

I am trying to print the dpkg -l command output each field using below script. But i am unable to print the entire data of the last column.
Can someone please help me in selecting the entire last column data.

Below is the Command output :

Code:
||/ Name                             Version               Architecture          Description
+++-================================-=====================-=====================-=====================================================================
ii  accountsservice                  0.6.45-1ubuntu1       amd64                 query and manipulate user account information
ii  acl                              2.2.52-3build1        amd64                 Access control list utilities
ii  acpid                            1:2.0.28-1ubuntu1     amd64                 Advanced Configuration and Power Interface event daemon
ii  adduser                          3.116ubuntu1          all                   add and remove users and groups
ii  amd64-microcode                  3.20191021.1+really3. amd64                 Processor microcode firmware for AMD CPUs
ii  apparmor                         2.12-4ubuntu5.1       amd64                 user-space parser utility for AppArmor
ii  apport                           2.20.9-0ubuntu7.9     all                   automatically generate crash reports for debugging
ii  apport-symptoms                  0.20                  all                   symptom scripts for apport


Below is my script :

Code:
while IFS= read -r line;

do
NAME=$(echo "$line"|awk  '{print $2}')

Description=$(echo "$line"|awk  '{print $5}')

echo -e "{\"'name'\":\"'"$name"'\",\"'Description'\":\"'"$Description"'\"
[COLOR=#008000][B]}"

done < filename

I am unable to print the entire data of description column.
Can someone please help me in getting the entire data ?

Moderator's Comments:
Mod Comment Kindly don't use color formatting for your question's/posts's fonts.

Last edited by RavinderSingh13; 03-02-2020 at 02:44 AM..
# 2  
Old 03-01-2020
Your code is a little hard to read....
Code:
awk '{printf("NAME: %s   DESCRIPTION: %s \n", $5 $6 $7 $8 $9 $(10) } ' filename

The $5 $6 ... part does not know how many words are the in input line. You may need to count past 10, I do not know. If a field is empty, it will not affect output.
Any field number beyond 9 can be referenced by $( nn ) where nn is two numbers, i.e., 10 --- 99. Modern awk may not need the () thing. So just use $57 or whatever you need

Last edited by jim mcnamara; 03-01-2020 at 06:04 PM..
# 3  
Old 03-01-2020
Thanks jim mcnamara for your reply,


But i am not sure about how many fields of data will be in description column. Is there any alternate way to get the data to a variable ?.
# 4  
Old 03-02-2020
Hi
Try this
Code:
awk '/^[iu]/ {sub(/(\S+\s+){4}/, ""); print}'

# 5  
Old 03-02-2020
Using awk multiple times in a shell loops leads to the question "why shell at all"? Try also
Code:
awk '{NM = $2; $1 = $2 = $3 = $4 = ""; printf "%-15s\t%s\n", NM, $0}' file
Name                   Description
                      
accountsservice        query and manipulate user account information
acl                    Access control list utilities
acpid                  Advanced Configuration and Power Interface event daemon
adduser                add and remove users and groups
amd64-microcode        Processor microcode firmware for AMD CPUs
apparmor               user-space parser utility for AppArmor
apport                 automatically generate crash reports for debugging
apport-symptoms        symptom scripts for apport

# 6  
Old 03-02-2020
Why not shell only?
The shell's read command reads the remainder into the last given variable; that's exactly what is desired here.
Code:
while read x name x x description
do
  echo -e "{\"'Name'\":\"'"$name"'\",\"'Description'\":\"'"$description"'\"}"
done < filename

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Command/script to match a field and print the next field of each line in a file.

Hello, I have a text file in the below format: Source Destination State Lag Status CQA02W2K12pl:D:\CAQA ... (10 Replies)
Discussion started by: pocodot
10 Replies

2. UNIX for Dummies Questions & Answers

Print first field using awk

I want to print line by line only the first field from txt file input file etr,t7tu,e45xdt,e45exgt,cdgfe aqw34aw,45edgf,45estd,sert34 a232e,4etedf,w345er,qw345rw, qw354,q34asf,tw45f,q3drsf required o/p file etr aqw34aw a232e qw354 (1 Reply)
Discussion started by: stew
1 Replies

3. UNIX for Dummies Questions & Answers

Print first field in awk

Hi, I have below text file 01.02.2014,asdas,arse,aere,4tfsd 12.03.2014,sdte,45gf,8iuj,qw343w 01.02.0214,aetre,sdfgter,asfrwe I have writen below code to print only first field that is only date field from text file #!/bin/ksh echo "enter week" read week while read -r... (6 Replies)
Discussion started by: stew
6 Replies

4. UNIX for Dummies Questions & Answers

Match pattern in a field, print pattern only instead of the entire field

Hi ! I have a tab-delimited file, file.tab: Column1 Column2 Column3 aaaaaaaaaa bbtomatoesbbbbbb cccccccccc ddddddddd eeeeappleseeeeeeeee ffffffffffffff ggggggggg hhhhhhtomatoeshhh iiiiiiiiiiiiiiii ... (18 Replies)
Discussion started by: lucasvs
18 Replies

5. Shell Programming and Scripting

Print certain field only

Need help. I have this: <li><a href="/wiki/Yunus_(sura)" title="Yunus (sura)">Yunus</a> (<a href="/wiki/Islamic_view_of_Jonah" title="Islamic view of Jonah" class=" mw-redirect">Junus</a> or <a href="/wiki/Jonah">Jonah</a>), 109 ayat, 11 ruku's, Meccan</li> <li><a href="/wiki/Hud_(sura)"... (1 Reply)
Discussion started by: zorrox
1 Replies

6. UNIX for Dummies Questions & Answers

[awk] print from field n to field x

Hi, I'm trying to print every line from first field to the fourth from a file containing more. $ cat input a b c d e f g a b c d e f gI'm trying awk '{for (i=1; i <= NF-3; i++) print $i}' awkTest.datbut it printsa b c d a b c dSo, I easily guess I'm wrong. :) Of course, I want:a b... (5 Replies)
Discussion started by: daPeach
5 Replies

7. Shell Programming and Scripting

how to print field n of line m

Hi everyone, I have a basic csh/awk question. How do I print a given field from a given line in a given file? Thanks in advance! (11 Replies)
Discussion started by: Deanne
11 Replies

8. UNIX for Dummies Questions & Answers

egrep field print

#!/bin/bash dnum=0 cd rc.d while do echo "rc$dnum.d outputs" egrep -r '^+' rc$dnum.d | sort -n +3 ((dnum++)) done WHAT I GET> rc0.d outputs rc0.d/tmpfiles:K00linuxconf rc0.d/tmpfiles:K01a1nono... (2 Replies)
Discussion started by: knc9233
2 Replies

9. UNIX for Advanced & Expert Users

Print The ouput From ls | grep "!!!"

guys forget the find command coz with find command u can't get condational output like grep. I will give small example :- Apr 10 09:12 aacbl222_12aug1998.lqc Apr 10 09:12 sscbl4534_4sep2001.lqc Apr 10 09:12 ah66fmi_5jan1997.lqc Apr 10 09:12 y313h1_7sep1998.lqc May 11 09:12... (5 Replies)
Discussion started by: geoquest
5 Replies
Login or Register to Ask a Question

Featured Tech Videos