#!/usr/bin/perl -s our($fs); $fs ||= ":"; $f1 = shift; $cond = shift; $b = `head -1 $f1`; chomp $b; for (split(/\s*$fs\s*/,$b)){ $corr{$_} = ++$n } $cond =~ s/\$([#\w]+)/'$'.($corr{$1}||die("Error: $1 not found\n"))/eg; $com ="awk 'BEGIN {OFS=FS=\"$fs\"} NR==1||($cond){print \$0}' $f1"; system "$com";