05-11-2007
returning split fields
I have a variable with data in this format
field1;field2;field3
I wanted to split the variable like this
field1
field2
field3
this statement was working fine echo $key_val | awk '{gsub(";" , "\n"))'
but sometimes we get the data in the variable in this format key_val="field1"
if this value is sent through the above statement it does'nt return any value
I want to write a short shell script which will return the data like
field1
field2
field3
when the input was like field1;field2;field3
and just field1 when the input was just like that
I think this way will work
count=0
count=`echo $key_val | sed -cd ";" |wc -c`
if [[ $ count -eq 0 ]]
then
echo $key_val
else
echo $key_val | awk '{gsub(";" , "\n"))'
fi
However it seems too long and cumbersome way of implementing it,do you have any suggestions how i can make the code more compact or more efficient
I am working in the korn shell
Thanks
Mervin
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I need to split a long varible which is a whole line read from a file into fields and store them in an array, the fields are delimited by pipe and a field may contain white spaces.
I tried the following concept test and it has problem with field 5 which contain a space, appearently so because... (3 Replies)
Discussion started by: gratus
3 Replies
2. Shell Programming and Scripting
Hi,
I have a comma delimited text file where character fields (as opposed to numeric and date fields) are always enclosed with double quotes. Records are separated by the newline character. In a shell script I would like to split a particular field into two separate fields (enclosed with double... (4 Replies)
Discussion started by: vbrown
4 Replies
3. Web Development
Have a column "address" which is combination of city, region and postal code like.
Format is : city<comma><space>region<space>postal code
abc, xyz 123456
All these three city, region and postal code are not mandatory. There can be any one of the above. In that case a nell... (2 Replies)
Discussion started by: rakshit
2 Replies
4. Shell Programming and Scripting
Hi,
the csv file with the delimeter #.
A#B#C#D#E#F#G#H
1#2#3#4#5#6#7#8
Z#x#c#V
7#2#8#9
N.
I want to read the file line by line and store in rowarray.
then the rowarray content should be spilt or made to fields using the delimeter #.
i am not sure can we store the fields in to... (3 Replies)
Discussion started by: barani75
3 Replies
5. Shell Programming and Scripting
Hi all,
I have a .vcf file which contains 8 coulmns and the data under each column as shown below,
CHROM POS ID REF ALT QUAL FILTER INFO
1 3000012 . A G 126 ... (6 Replies)
Discussion started by: mehar
6 Replies
6. Shell Programming and Scripting
Hello;
I have a file consists of 4 columns separated by tab. The problem is the third fields. Some of the them are very long but can be split by the vertical bar "|". Also some of them do not contain the string "UniProt", but I could ignore it at this moment, and sort the file afterwards. Here is... (5 Replies)
Discussion started by: yifangt
5 Replies
7. Shell Programming and Scripting
I want to use awk to split fields and put them into a file
but I don't know the number of fields
for example, in the following line
Ports: 22/filtered/tcp//ssh///, 53/open/tcp//tcpwrapped///, 111/filtered/tcp//rpcbind///, 543/filtered/tcp//klogin///, 544/filtered/tcp//kshell///,... (3 Replies)
Discussion started by: esolvepolito
3 Replies
8. Shell Programming and Scripting
Hi,
I need your help for below with shell scripting or perl
I/P
key, Sentence
customer1, I am David
customer2, I am Taylor
O/P
Key, Words
Customer1,I
Customer1,am
Customer1,David
Customer2,I
Customer2,am
Customer2,Taylor (4 Replies)
Discussion started by: monishathampi
4 Replies
9. Shell Programming and Scripting
Hi All,
I have a file where a list of email id's are stored as shown below:
emailid1@blh.com emaild2@blh.com asdf@blah.com emailid3@blh.com
In my shell script, i am sending emails to above id's
My requirement is to seperate the email id's into 2 groups..
emailid1@blh.com... (10 Replies)
Discussion started by: galaxy_rocky
10 Replies
10. Shell Programming and Scripting
In the tab-delimited input below I am trying to use awk to -10 from $2 and +10 to $3. Something like
awk -F'\t' -v OFS='\t' -v s=10 '{split($4,a,":"); print $1,$2-s,$3+s,a,$5,$6} | awk {split(a,b,"-"); print $1,$2-s,$3+s,b-s,b+s,$5,$6}' input
should do that. I also need to -10 from $4... (2 Replies)
Discussion started by: cmccabe
2 Replies
LEARN ABOUT DEBIAN
sniffit
SNIFFIT(5) File Formats Manual SNIFFIT(5)
NAME
sniffit - configuration file for sniffit (name arbirtary)
DESCRIPTION
This page describes the format for the config file for sniffit (see sniffit(8) ). This file allows you to specify in great detail witch
packets should be processed by sniffit. This file also controls (or will control) some functions for the continuous logging ('-L' option).
A sniffit config file might look like (Be sure to end it with a BLANK line):
# Sniffit Sample Config file -- Brecht Claerhout
logfile /var/log/sniffit.today.log
# First select all packets!
select both mhosts 1
select both mhosts 2
# Now deselect all packets from/to those damn 'surfers'
deselect both port 80
deselect both port 8001
This file will tell sniffit to process all packets on the subnet except those FROM/TO ports 80 and 8001 (thus we don't want logs of those
mass WWW connections witch turn our logs unreadable).
GLOBAL FORMAT
The file consists of lines, lines are formed by fields, fields are separated with SPACES (NO TABS). Unix comment lines (starting with '#'
are allowed). So this gives us:
<field1> <field2> <field3> <field4> <field5>
FIELD FORMAT
<field1>
select - Sniffit will look for packets that match the following description (other fields)
deselect - Sniffit will ignore packets that match the description
logfile - change the logfile name to <field2> instead of the default 'sniffit.log'
<field2>
from - Packets FROM the host matching the following desc. are considered.
to - similar, Packets TO the....
both - similar, Packets FROM or TO the....
a filename - as an argument of 'logfile' in <field1>
<field3>
host - The (de)selection criteria involves a hostname.
port - similar, ... a portnumber
mhosts - The (de)selection criteria involves multiple-hosts, like with the wildcars in 0.3.0, but without the 'x'
<field4>
Either a hostname, a portnumber, a service name or a numbet-dot partial notation indicating multiple hosts depending on <field3>
(service names like 'ftp' are resolved as the services available present on the host that runs Sniffit, and translated into a port
nr)
<field5>
A portnumber, if <field3> was 'host' or 'mhosts' (optional, if not filled in, all ports are going to be (de)selected)
FILE INTERPRETING
The config file is interpreted SEQUENTIAL, so watch it, don't mix lines in a file. Example:
select both mhosts 100.100.12.
deselect both port 80
select both host 100.100.12.2
This file will get you the packets:
a) Send by hosts '100.100.12.*'
b) EXCEPT the WWW packets
c) BUT showing the WWW packets concerning
100.100.12.2
select both mhosts 100.100.12.
select both host 100.100.12.2
deselect both port 80
Will give you the packets (probably unwanted result):
a) Send by hosts '100.100.12.*'
b) Send from/to 100.100.12.2 (useless line)
c) deselecting all WWW packets on the subnet
AUTHOR
Brecht Claerhout <coder@reptile.rug.ac.be>
SEE ALSO
sniffit(8)
SNIFFIT(5)