For example, say I wanted to know what the column header changes were between two files (same data, different code used to extract them). The files are tab delimited and I have a script I use (frequently) that prints out the index and name for the headers in an input file -
columnHeaders.sh.So, if I want to see what's different between two files, in the past I'd create two output files using my
columnHeaders.sh script and then use diff, kompare or comm to compare them.You can eliminate the temporary files using a technique called process substitution.
> diff <(columnHeaders.sh file1) <(columnHeaders.sh file2) 2,3c2,3 > 0 blarg > 1 blorg -- < 0 blorg < 1 blargIn this case we see two columns have been swapped between file1 and file2.
Take a look at the Advanced Bash Scripting Guide for more examples.
The
columnHeaders.sh script basically does this (but allows user specified delimiters):
> head -1 <input file> | perl -F'\t' -lane 'print $n++,"\t$_" for @F'
 
 
 
 Posts
Posts
 
 
No comments:
Post a Comment