09-28-2010
Quote:
$ awk -F "" '
NR==FNR{a[NR]=$0;next}
!/>/ {
split(a[FNR],b,"");
{ for (i=1;i<=NF;i++) {if ($i!=b[i]) printf b[i]}
printf RS
}
}
' file1 file2
Could you please explain the code..
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Dear Unix-Gurus,
I'm trying to write a script to compare the data in a log file. Here's how my logfile will look like:
'List All A0 Data in Destination Server'
A0567
A0678
A0789
List A0 Files in Source Server
A0567
A0678
A0789
So if the file match in Source Server match Destination... (1 Reply)
Discussion started by: lweegp
1 Replies
2. Shell Programming and Scripting
Hi
I have two files in unix. I need to compare two files and print the differed lines in other file
Eg
file1
1111
2222
3333
file2
1111
2222
3333
4444
5555
newfile
4444
5555
Thanks In advance (3 Replies)
Discussion started by: evvander
3 Replies
3. Shell Programming and Scripting
I have learned file comparison from my previous post here. Then, it is comparing the whole line. Now, i have a new problem.
I have two files with 3 columns separated with a "|". What i want to do is to compare the second and third column of file 1, and the second and third column of file 2. And... (4 Replies)
Discussion started by: kingpeejay
4 Replies
4. Shell Programming and Scripting
Hi,
I have two tab separated files;
file1:
S.No ddi fi cu o/l t+ t-
1 0.5 0.6 o 0.1 0.2
2 0.2 0.3 l 0.3 0.4
3 0.5 0.8 l 0.1 0.6
... (5 Replies)
Discussion started by: vasanth.vadalur
5 Replies
5. Shell Programming and Scripting
i want to compare two file and print same line
file1
12345 a
23456 a
45678 a
45679 a
file2
23456 a
34567 a
45679 a
output
23456 a
45679 a
any one can help me? Thank you (7 Replies)
Discussion started by: bleach8578
7 Replies
6. UNIX for Dummies Questions & Answers
Hello I am a new unix user, and I have a work related task to compare 2 files and print all of the lines in file 2 that contain a string from file 1 Note: the fields are in different columns in the files. I suspect the is a good use for awk? Thanks for your time & help
File 1
123 232 W343... (6 Replies)
Discussion started by: KevinRidley
6 Replies
7. Shell Programming and Scripting
my script so far
nawk -F, 'NR==FNR{a++;next} a{b++}
END{for(i in b){if(b-1){print i";\t\t"b}else{print "NEW:"i";\t\t1"} } }' OFS=, 20111228.csv *.csv | sort
NE:221478,SHELF:13,SLOT:4; 2
NE:221726,SHELF:8,SLOT:1; 2
NE:222318,SHELF:14,SLOT:1; 9... (20 Replies)
Discussion started by: llcooljatt
20 Replies
8. Shell Programming and Scripting
Hi,
I need to compare 2 text files with around 60000 rows and 1 column. I need to compare these and write the mismatch data to 3rd file.
File1 - file2 = file3
wc -l file1.txt
58112
wc -l file2.txt
55260
head -5 file1.txt
101214200123
101214700300
101250030067
101214100500... (10 Replies)
Discussion started by: Divya Nochiyil
10 Replies
9. Shell Programming and Scripting
Hi,
Input file 1 :
37170 37196 77 51
37174 37195 73 52
37174 37194 73 53
Desired Output file 1 :
37170 37196 77 51
Input file 2 :
37174 37195 73 0
37170 37196 77 0
Desired Output file 2 :
37174 37195 73 0 (1 Reply)
Discussion started by: cpp_beginner
1 Replies
10. Shell Programming and Scripting
Hi All
I want to compare 2 files using awk and get output of content which is not matching
I have 2 files
a.txt
123
456
780
143
b.txt
A|B|C|167|D|E
C|K|D|123|D|E
A|B|D|789|G|F
C|D|G|143|A|B
Not matching line from b.txt
O/P
A|B|C|167|D|E
A|B|D|789|G|F (3 Replies)
Discussion started by: aaysa123
3 Replies
LEARN ABOUT DEBIAN
shell-quote
SHELL-QUOTE(1p) User Contributed Perl Documentation SHELL-QUOTE(1p)
NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS
--debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.8.4 2005-05-03 SHELL-QUOTE(1p)