Combine first two words ( country name ) into one word in every line of log file with 500 records


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
Combine first two words ( country name ) into one word in every line of log file with 500 records

Code:
United States 1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
Italy  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
India  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
south Africa  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517

output will be :
Code:
UnitedStates 1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
Italy  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
ndia  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
southAfrica  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517 


Last edited by RavinderSingh13; 07-24-2019 at 02:06 AM..
# 2  
Try
Code:
awk 'NF>11 {sub(/ /,"")}  1' file
UnitedStates 1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
Italy  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
India  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
southAfrica  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517

EDIT: Or, if you're unsure about the space count but know there's an IP address in the second field, try
Code:
awk '{while ($2 !~ /([0-9]*\.)[0-9]*\.[0-9]*\.[0-9]*/) sub (/ /, _)} 1' file


Last edited by RudiC; 07-23-2019 at 11:36 AM..
This User Gave Thanks to RudiC For This Post:
# 3  
thanks , would you please suggest me to good documents where to learn such these trick Smilie
# 4  
Best place to start is the AWK manual: The GNU Awk User’s Guide
Then you need lot of patience, practice, reading forums like this one and think of more than one way to solve a problem Smilie
These 2 Users Gave Thanks to balajesuri For This Post:
# 5  
Depending on how (and by what) you further process your data you can also do it in shell directly instead of calling awk for only that purpose:

Quote:
Originally Posted by arm
Code:
United States 1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
Italy  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
India  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
south Africa  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517

output will be :
Code:
UnitedStates 1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
Italy  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
ndia  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517
southAfrica  1.2.3.4  80  10 1563790914  1   1932454179 1.2.3.6  55517  11.1.2.1  55517 

Code:
while read f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 ; do
     if [ -n "$f12" ] ; then
          printf "%s %s %s %s %s %s %s %s %s %s %s\n" "${f1}${f2}" "$f3" "$f4" "$f5" "$f6" "$f7" "$f8" "$f9" "$f10" "$f11" "$f12"
     else
          printf "%s %s %s %s %s %s %s %s %s %s %s\n" "${f1}" "${f2}" "$f3" "$f4" "$f5" "$f6" "$f7" "$f8" "$f9" "$f10" "$f11"
     fi
done < /path/to/input

Adjust the printf-format string to fine-tune the output format.

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
# 6  
-deleted-

Last edited by MadeInGermany; 07-24-2019 at 05:05 PM.. Reason: deleted: does not work in general
# 7  
thanks what about if NF is changeable , sometime might be 11 or 14 , or bigger or less so NF>11 not work my dear
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #901
Difficulty: Easy
Steve Jobs offered Linus Torvalds a job in 2000, on the condition that he stopped development on Linux.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace particular words in file based on if finds another words in that line

Hi All, I need one help to replace particular words in file based on if finds another words in that file . i.e. my self is peter@king. i am staying at north sydney. we all are peter@king. How to replace peter to sham if it finds @king in any line of that file. Please help me... (8 Replies)
Discussion started by: Rajib Podder
8 Replies

2. UNIX for Advanced & Expert Users

Sort words based on word count on each line

Hi Folks :) I have a .txt file with thousands of words. I'm trying to sort the lines in order based on number of words per line. Example from: word word word word word word word word word word word word word word word word to desired output: word (2 Replies)
Discussion started by: martinsmith
2 Replies

3. Shell Programming and Scripting

Read a File line by line and split into array word by word

Hi All, Hope you guys had a wonderful weekend I have a scenario where in which I have to read a file line by line and check for few words before redirecting to a file I have searched the forum but,either those answers dint work (perhaps because of my wrong under standing of how IFS... (6 Replies)
Discussion started by: Kingcobra
6 Replies

4. Shell Programming and Scripting

Compare multiple files, identify common records and combine unique values into one file

Good morning all, I have a problem that is one step beyond a standard awk compare. I would like to compare three files which have several thousand records against a fourth file. All of them have a value in each row that is identical, and one value in each of those rows which may be duplicated... (1 Reply)
Discussion started by: nashton
1 Replies

5. Shell Programming and Scripting

Combine multiple unique lines from event log text file into one line, use PERL or AWK?

I can't decide if I should use AWK or PERL after pouring over these forums for hours today I decided I'd post something and see if I couldn't get some advice. I've got a text file full of hundreds of events in this format: Record Number : 1 Records in Seq : ... (3 Replies)
Discussion started by: Mayday22
3 Replies

6. UNIX for Advanced & Expert Users

cut words based on the word count of a line

I would like to cut words based on the word count of a line. This over here inspired me with some ideas but I wasn't able to get what I needed. https://www.unix.com/shell-programming-scripting/105841-count-words-each-line-file-using-xargs.html If the line has 6 words I would like to use this.... (8 Replies)
Discussion started by: cokedude
8 Replies

7. UNIX for Dummies Questions & Answers

Grep specific records from a file of records that are separated by an empty line

Hi everyone. I am a newbie to Linux stuff. I have this kind of problem which couldn't solve alone. I have a text file with records separated by empty lines like this: ID: 20 Name: X Age: 19 ID: 21 Name: Z ID: 22 Email: xxx@yahoo.com Name: Y Age: 19 I want to grep records that... (4 Replies)
Discussion started by: Atrisa
4 Replies

8. Shell Programming and Scripting

How to remove all words from a matching word in a line?

Hi Guys, :p I have a file like this: 2010-04-25 00:00:30,095 INFO - ]- start process U100M4 2010-04-25 00:00:30,096 DEBUG - ] -- call EJB 2010-04-25 00:00:30,709 INFO - - end processU100M4 2010-04-25 00:00:30,710 DEBUG - got message=Sorry I want to out put format. 2010-04-25... (5 Replies)
Discussion started by: ooilinlove
5 Replies

9. Shell Programming and Scripting

How to remove all words starting from a matching word in a line

Hi Guys, I have a file like this: wwwe 1 ioie ewew yyy uuu 88 erehrlk 4 ihoiwhe lkjhassad lkhsad yyy mmm 45 jhash lhasdhs lkhsdkjsn ouiyrshroi oihoihswodnw oiyhewe yyy ggg 77 I want to remove everything after "yyy" and including "yyy" from each line in the file. So I want:... (2 Replies)
Discussion started by: npatwardhan
2 Replies

10. Shell Programming and Scripting

How to replace a word with a series of words in a file

Hi, I have a Template file 'TL.body' which says as follows: "There are no <FILENAME> files on the server. " The missing file names are identified and stored in a variable. For Eg: MISSFILE="abc.txt def.txt xyz.txt" I want the values of MISSFILE variable to be replaced against... (2 Replies)
Discussion started by: brap45
2 Replies

Featured Tech Videos