On Sat, 10 Mar 2007, Anders Johansson wrote:
On Saturday 10 March 2007 12:28, Vince Oliver wrote:
On Sat, 10 Mar 2007, Anders Johansson wrote:
On Saturday 10 March 2007 08:39, Randall R Schulz wrote:
On Friday 09 March 2007 16:32, Anders Johansson wrote:
...
I'm not very happy with the string tests, but I couldn't find a bash
function that returned true on substring match. If anyone can think
of a cleaner way of doing it, I'd love to know it
Check out the [[ value = pattern ]] tests. There are options for both
glob and RE interpretation of "pattern."
Cool, that works, thanks
So
for dir in DH*; do
for file in `find $dir -type f -name more\*.dat`; do
[[ $file =~ t\(10\|9\) ]] || head -5 $file >> $dir/list;
done;
done
Thanks. But I do not want the whole content of files in 'list' just 6th,
7th columns and file names (as you mat read in awk command bellow)
for dir in DH* ; do
for file in `find $dir -type f -name "more*data.dat" -exec egrep -vq
'\<t(9|10)\>' {} \; -print`; do
awk 'BEGIN{FS=","}{if(NR>1 && NR<7){
f=n=FILENAME;sub(/[^/]+$/,"list",f);sub(/.*\//,"",n);print $6,$7,n>>f}}'
$file
done
done
this command works fine but filtering out lines with egrep does not work
No. It wouldn't take much to add my test to your awk, but I still think awk is
the wrong tool to use for something so light
for dir in DH*; do
for file in `find $dir -type f -name more\*.dat`; do
[[ $file =~ t\(10\|9\) ]] || for i in 1 2 3 4 5; do
IFS=' ' read -a line;
echo ${line[5]} ${line[6]} $(basename $file) >> $dir/list;
done < $file;
done;
done
There are very few things you can't do with bash alone.
I just wish I could think of a way to eliminate the 'find'. That one really
annoys me
It does not work. Name of the files are like:
less_box1_tau1_data.dat
less_box1_tau2_data.dat
less_box1_tau3_data.dat
...
less_box1_tau10_data.dat
so I run like:
for dir in DH*; do
for file in `find $dir -type f -name less\*data.dat`; do
[[ $file =~ tau\(1\|2\) ]] || for i in 1 2 3 4 5; do
IFS=' ' read -a line;
echo ${line[5]} ${line[6]} $(basename $file) >> $dir/list;
done < $file;
done;
done
But this command store all file names in 'list' without filtering and
line[5], line[6] (columns in files are separated by comma)
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]