unix - using sed -n with variables -
i having log file a.log , need extract piece of information it. locate start , end line numbers of pattern using following.
start=$(sed -n '/1112/=' file9 | head -1) end=$(sed -n '/true/=' file9 | head -1)
i need use variables (start,end) in following command:
sed -n '16q;12,15p' orig-data-file > new-file
so above command appears like:
sed -n '($end+1)q;$start,$end'p orig-data-file > new-file
i unable replace line numbers variables. please suggest correct syntax.
thanks, rosy
when realized how it, looking anyway line number file containing requested info, , display file line eof.
so, way.
with
pattern="pattern" input_file="file1" output_file="file2"
line number of first match of $pattern $input_file can retrieved with
line=`grep -n ${pattern} ${input_file} | awk -f':' '{ print $1 }' | head -n 1`
and outfile text $line eof. way:
sed -n ${line},\$p ${input_file} > ${output_file}
- the point here, way how can variables used command sed -n:
first witout using variables
sed -n 'n,$p' <file name>
using variables
line=<n>; sed -n ${line},\$p <file name>
Comments
Post a Comment