LINUX.ORG.RU

AWK


0

1

Подскажите пожалуйста как в AWK сравнивать два файла сразу, можно ли к ним как-то обратиться в файле.bat?

можно ли к ним как-то обратиться в файле.bat

В смысле, на одной такой оконно-форточной платформе? Можно воспользоваться http://www.msys2.org

I-Love-Microsoft ★★★★★
()

а что значит обратиться к файлам?
awk вроде бы средство обработки строк, а доставать строки из файлов - не его дело. хотя могу ошибаться.

xmikex ★★★★
()
Последнее исправление: xmikex (всего исправлений: 2)

обратиться в файле.bat?

Сударь, извольте проследовать на винfuck.

WereFox ★☆
()
Ответ на: комментарий от Miguel

Просто задание состоит в том, чтобы из двух списков-рейтингов создать один и для этого сравнивать нужно эти два файла, чтобы отсортировать. Если есть программа, которая сравнивает построчно, то как сделать так, чтобы она строку из одного файла сравнивала со строкой другого файла и записывала лучшую по критерию конкретному?

dianamy31
() автор топика
Ответ на: комментарий от dianamy31

Просто задание состоит в том, чтобы из двух списков-рейтингов создать один и для этого сравнивать нужно эти два файла, чтобы отсортировать

у sort есть ключи сортировки по полям, в том числе и как числа

anonymous
()
Ответ на: комментарий от legolegs

там рейтинги FT US 500 и FT UK 500, рейтинги вошедших лучших компаний, и нужно создать один файл и помещать в него строки сортируя, как-то так

dianamy31
() автор топика
Ответ на: комментарий от dianamy31

нахрена что-то прикрепялть, если достаточно нескольких строк исходных и конечного файлов? Ладно, вобщем качаешь эти свои экселевские таблицы, далее

# конвертируем в текстовый формат, разделитель - табуляция, кавычки вокруг чисел не ставить.
# внимание, тут заодно откусываем лишние строки, которых в американском и английском файлах разное число

xls2csv -c$'\t' -q1 FT_US_500.xls | tail -n+4 | head -n-2 > FT_US_500.txt
xls2csv -c$'\t' -q1 FT_UK_500.xls | tail -n+3 | head -n-2 > FT_UK_500.txt

#склеиваем две таблицы в одну широкую
paste FT_UK_500.txt FT_US_500.txt > together.txt

#работаем с файлом
awk -F$'\t' '{ if ($11 < $24) print $3,$11; else print $16,$24;}' together.txt > lowest_pe_ratio.txt

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Если вот так пишет? «paste» не является внутренней или внешней командой, исполняемой программой или пакетным файлом. я пыталась ввести это в файл.bat, наверное не туда нужно да?

dianamy31
() автор топика
Ответ на: комментарий от dianamy31

У нас тут всё-таки форум о linux, unix и соответствующих инструментах, к которым относится и awk. Их можно установить и на windows, если вы этого не сделали я не понимаю, откуда тогда у вас awk. Рекомендую доустановить paste (и xls2csv) тем же способом, которым ставился awk (paste входит в пакет coreutils). Если это невозможно, то задачу можно решить голым awk, это это будет замороченное и неудобное решение при помощи оператора getline. Но ваша задача поставлена туманно, сформулирована неполно. С уточнения формулировки и стоит начать.

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от legolegs

у меня вроде как все это нужно в gawk выполнить. Просто как обрабатыватель шаблонов он работает

dianamy31
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.