2014-12-22 1 views
0
awk '$3>$cap{print $0}' $f > $tmp 

Таким образом, $ f и $ tmp - файлы, через которые я повторяю. В каждом файле, если значение столбца 3 больше, чем ограничение, которое изменяется для каждого файла, эта строка печатается в tmp (исключительно для каждого файла $ f). Он корректно работает для некоторых строк, но некоторые строки с меньшим значением также печатаются. Может кто-то поможет мне в этом, если значение столбца 3 больше, чем колпачок, напечатайте его в tmp, не работает должным образом

+0

является 'cap' переменной bash? Если это так, попробуйте использовать 'awk -v cap = '$ cap' '$ 3> cap {print $ 0}'' – fredtantini

+0

Err, $ tmp здесь является выходным файлом, если перед ним есть 'больше, чем знак'. –

ответ

2

Вот как читать bash переменную с помощью awk

awk -v var="$cap" '$3>var' "$f" > $tmp 

или

awk '$3>var' var="$cap" "$f" > $tmp 

Ваша переменная не расширяется в опалить цитатой 'code'
Вам не нужно print $0 , его действие по умолчанию отсутствует.
Всегда указывайте имя переменной переменной «$ cap», чтобы не потерять форматирование.

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

  • Нет связанных вопросов^_^