Remove space with sed


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Remove space with sed
# 1  
Old 07-27-2019
Remove space with sed

Hello Folks ,
myfile contains 1000000 records as follows:
Code:

logver=56 idseq=63256 itime=1111 devid=TG-40 devname=PUI-C2 vd=USER date=2019_01_10 time=18:39:49 logid="000013" type="traffic" subtype="forward" level="notice" eventtime=134 srcip=1.1.1.1 srcport=1 srcintf="XYX-CORE.01" srcintfrole="undefined" dstip=2.2.2.2 dstport=17 dstintf="W-XY.100" dstintfrole="undefined" poluuid="e7a88496-b510-51e7-dbcd-384d6bbc0805" sessionid=24343 proto=17 action="accept" policyid=1 policytype="policy" service="udp/17000" dstcountry="United States" srccountry="Reserved" trandisp="snat" transip=120.1.1.1 transport=23136 duration=90 sentbyte=33 rcvdbyte=36 sentpkt=1 rcvdpkt=1 appcat="unscanned"

cat myfile | sed 's/[a-z] *  //g' | awk '{for(i=1;i<=NF;i++){if($i~/dstcountry/) printf "|%s",$i};printf "\n" }' | \
sed 's/^|//g;s/[a-z]*.=//g;s/"//g'

after run above script I got
Code:
UniteStates

I need it to be
Code:
UnitedStates

I think the problem with first "sed" of mine , need to know how to remove the space between two words in double quote "String1 space String2"

Last edited by Neo; 07-27-2019 at 08:59 AM..
# 2  
Old 07-27-2019
Hello arm!

In case you forgot to read the forum rules, here are two rules you are not following here:



Quote:
RULES OF THE UNIX AND LINUX FORUMS


(5) Search the forums database with your keywords before asking questions.

(8) Use Code Tags around all code and data fragments in posts.
Please follow posting rules.

Thanks

Neo
This User Gave Thanks to Neo For This Post:
# 3  
Old 07-29-2019
Code:
awk '
{while (match($0, /[^ ]*="[^"]*  *[^"]*"/)) {
   s=t=substr($0, RSTART, RLENGTH);
   gsub("[ \"]*", "", s);
   sub(t, s);
 }
 for (i=1; i<=NF; i++) if ($i ~ /^dstcountry=/) {sub(".*=", "", $i);  print $i;}
}
' myfile


Last edited by rdrtx1; 07-29-2019 at 04:33 PM..
# 4  
Old 07-29-2019
Hi arm,
Please be very careful when posting your code. When I tried to run your script with the data you supplied, the output I got was:
Code:
United

(Note that there is a space at the end of that output. The BRE that you supplied to your first sed has two spaces after the asterisk and there aren't any occurrences of two adjacent spaces in your sample input. So I don't see how the code you showed us could have produced the output you showed us.

Assuming that there is no more than one occurrence of that field in an input line, one might also try:
Code:
awk '
match($0, /dstcountry="[^"]*"/) {
        $0 = substr($0, RSTART + 12, RLENGTH - 13)
        gsub(" ", "")
        print
}' myfile

which might be a little bit faster since it doesn't have to process dozens of fields that don't match.

Note also that using cat and sed as input and output filters for awk is almost always a waste of system resources that will slow down your script and may also delay other things running on your system while your script is running.
This User Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remove space from numeric value

Hello, I need help. I have xml file and there are one extra space on number <EpiReference>1 42345</EpiReference>. And of cource, the value change on every new file. I need remove space from that value what is in between <EpiReference> and </EpiReference>. How I can do that? This are example... (9 Replies)
Discussion started by: Jopsulainen
9 Replies

2. Shell Programming and Scripting

sed - remove space and . for a pattern

Hi, I have file which contains following lines A| 965.|Mr.|35.45| 66. B| 33.| a456.| 77. The output should be A|965|Mr.|35.45|66 B|33| a456.|77 Basically if a Number has space in prefix and . in suffix remove both. So pattern could be if there is a | which has next two characters as... (1 Reply)
Discussion started by: wahi80
1 Replies

3. UNIX for Advanced & Expert Users

Need to remove leading space from awk statement space from calculation

I created a awk state to calculate the number of success however when the query runs it has a leading zero. Any ideas on how to remove the leading zero from the calculation? Here is my query: cat myfile.log | grep | awk '{print $2,$3,$7,$11,$15,$19,$23,$27,$31,$35($19/$15*100)}' 02:00:00... (1 Reply)
Discussion started by: bizomb
1 Replies

4. Shell Programming and Scripting

remove space

File A.txt A005 -119.5 -119.5 -100.5 A006 -120.5 -119.5 -119.3 A008 0 0 0 Output A005 -119.5 -119.5 -100.5 A006 -120.5 ... (1 Reply)
Discussion started by: asavaliya
1 Replies

5. Shell Programming and Scripting

How to remove tab space and new line from a file using sed?

i am using the default sed package that comes with solaris. (11 Replies)
Discussion started by: chidori
11 Replies

6. Shell Programming and Scripting

Remove space before a character

Hi guys, I am new to shell scripting and I have a small problem...If someone can solve this..that would be great I am trying to form a XML by reading a flat file using shell scripting This is my shell script LINE_FILE1=`cat FLEX_FILE1.TXT | head -1 | tail -1` echo... (1 Reply)
Discussion started by: gowrishankar05
1 Replies

7. Shell Programming and Scripting

Remove space

DATE=6/Jul/2010 6/Jul/2010 var="sed -n '/\ ---------- Post updated at 11:49 AM ---------- Previous update was at 11:36 AM ---------- #!/bin/bash DATE=`./get_date.pl 3` DATE1=`./get_date.pl 2` var1=$( echo "$DATE" | sed "s/ //g" ) var2=$( echo "$DATE1" | sed "s/ //g" ) var="sed -n... (1 Reply)
Discussion started by: sandy1028
1 Replies

8. UNIX for Dummies Questions & Answers

Space in file how to remove

Hello I have a file with data something like this in it : texttexttext "text .lst" TEXT=" text " texttexttext "moretext .lst" TEXT=" text " Question is how do I get rid of space so that the files looks like this : texttexttext "text.lst" TEXT="text" texttexttext... (8 Replies)
Discussion started by: davebw
8 Replies

9. Shell Programming and Scripting

How to remove space in sed for / character

Hi... i need a script to remove the space before and after the operator like( / ). Ex : Input file apple / manago mango / fresh apple / fresh Desired output: apple/manago mango/fresh apple/fresh Note: betwee the desired operator space should be removed, between words do not remove... (3 Replies)
Discussion started by: vasanth_vadalur
3 Replies

10. Shell Programming and Scripting

to remove space after numeric

I have a script that shows me the disk SPace used by different dir under my home dir: #!/bin/ksh cd /ednpdtu3/u01/pipe p1=`df -g | tail -1 | tr -s " " | cut -d " " -f2` echo "Total Disk Space of Home Dir is $p1 GB" p2=`df -g | tail -1 | tr -s " " | cut -d " " -f3` echo "Total Disk Space... (2 Replies)
Discussion started by: ali560045
2 Replies
Login or Register to Ask a Question