2015-02-16 6 views
1

Я использую unix для чтения файла excel, сортировки по одному столбцу, а затем я хочу получить процент (скажем, верхние 10%) отсортированных строк экспортируется в новый .xls-файл. У меня есть код ниже, который отлично работает, но мне нужно сделать wc -l до этой строки, чтобы получить «126», а затем нужно ввести его (что является проблемой, поскольку я хочу сделать последовательную фильтрацию).Unix head/tail процент строк к выходному файлу

cat /Desktop/Results.xls | sort -n -k 3 | awk -F "[\t]" '{printf "%s\n",$0}' | head -$((126*1/10)) >./Results_0167_1.xls 
+0

Вы попробовали предложение? – klashxx

ответ

0

Вы можете изменить awk к head сам файл:

sort -n -k 3 /Desktop/Results.xls| awk '{a[i++]=$0}END{for (j=1;j<=i/10;j++){printf "%s\n",a[j]}}' >./Results_0167_1.xls 

The awk магазинов и счетчик (a[i++]=$0) запись, трубопроводная по sort, после этого процесса, в END части он будет печатать до 10% достигнуто: j<=i/10