2015-11-08 4 views
1

Я использую эту команду awk для извлечения трех строк из текстового файла.Использование awk с переменной

awk 'BEGIN {FS="\t";OFS=","}; {print $1,$3,$10}' $FILENAME > $OUTPUT 

Я хочу, чтобы указать число столбцов в качестве переменной в отдельности, так что будет проще изменить в будущем, как это:

COLUMNS=$1,$3,$10 
awk 'BEGIN {FS="\t";OFS=","}; {print $COLUMNS}' $FILENAME > $OUTPUT 

Однако это тянет все столбцы в выходной, а не только 3 Я указал. Как это сделать правильно?

+0

Ваш захваченный оболочкой запрос о необходимости/правила/лимиты. Попробуйте 'echo $ COLUMNS' и начните получать просветленные. ;-) – alk

ответ

1

нравится это?

$ more file 
a,b,c,d,e 
1,2,3,4,5 

$ a='$1,$2,$NF' 

$ awk -F, "{print $a}" file 
a b e 
1 2 5 
+0

@Am_I_Helpful: Предложение работает. Так почему же этот ответ не отвечает на вопрос ОФ? – alk

Смежные вопросы