The UNIX and Linux Forums  


Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
поиск крупнейших каталогов в файловой системе GKnight Shell программирование и сценарии 8 04-30-2008 09:58 PM
Самая большая свалка устройство слишком малы click007 AIX 4 10-26-2007 06:08 AM
Найти крупнейших файл mohan705 Shell программирование и сценарии 15 07-04-2007 03:34 AM
найти 5О крупнейших файлов в каталоге igidttam Файловые системы, диски и память 8 05-16-2007 02:20 PM
файл большого размера на пароль rameshparsa Shell программирование и сценарии 4 11-22-2005 12:25 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 03-15-2008
jkl_jkl jkl_jkl is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2007
Сообщений: 46
крупнейшей области, AWK, помогите

Привет Все,

Мой файл следующим образом:


Код:
$ cat max.txt
abcd:1982:a
efghij:1980:e
klmn:1923:k
opqrst:1982:o

Я должен узнать о крупнейших первом поле и соответствующая строка. то есть

Результат, необходимо:


Код:
efghij efghij:1980:e
opqrst opqrst:1982:o

HTH,
jkl_jkl
Old 03-15-2008
yunccll yunccll is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2008
Сообщений: 23
попробуйте этот код:
Код:
#!/bin/bash

#constant
INFILE="max.txt"

#core script
awk ' BEGIN { OFS=FS=":"; cur=max=0; seen=""}
        {
           cur = length($1)
           if(cur > max ){
              seen = $1 " " $0
           }
           else if(cur == max){
              seen = seen "\n"  $1 " " $0
           }
        }
        END { print seen }'  $INFILE
#exit normally
exit 0

. Аарон
Old 03-15-2008
jkl_jkl jkl_jkl is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2007
Сообщений: 46
Аарон,

Он печатает только


Код:
opqrst opqrst:1982:o

И не


Код:
efghij efghij:1980:e
opqrst opqrst:1982:o

т.е. если Есть 2 длинный поля, его печать последнего.
Old 03-15-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Модератор
  
 

Регистрация: Декабрь 2003
Откуда: Florida
Сообщения: 1,935
Просто добавьте "макс \u003d текущ." и обеих линий распечатываются, как вы хотите.


Код:
awk ' BEGIN { OFS=FS=":"; cur=max=0; seen=""}
        {
           cur = length($1)
           if (cur > max ) {
              seen = $1 " " $0
              max = cur
           } else if (cur == max) {
              seen = seen "\n"  $1 " " $0
           }
        }
        END { print seen }'  $INFILE

Old 03-15-2008
Klashxx's Avatar
Klashxx Klashxx is offline Forum Advisor  
HP-UX/Linux/Oracle
  
 

Регистрация: Февраль 2006
Место проведения: Альмерия ", Испания
Сообщений: 393
Другая Соль:

Код:
awk '{l=length($1);if(l>=max){a[$1" "$0]=l;max=l}}END{for(i in a)if (a[i]==max)print i}' FS=':' file

Old 03-16-2008
yunccll yunccll is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2008
Сообщений: 23
Цитата:
Первоначально Послано jkl_jkl View Post
Аарон,

Он печатает только


Код:
opqrst opqrst:1982:o

И не


Код:
efghij efghij:1980:e
opqrst opqrst:1982:o

т.е. если Есть 2 длинный поля, его печать последнего.
Ой, простите, я забыл "макс \u003d текущ.", когда я мою ввода кода в ответ!

. Аарон
Old 11-29-2008
bashisthebest bashisthebest is offline
Зарегистрированный пользователь
  
 

Регистрация: Nov 2008
Сообщений: 1
Как бы вы найдете самых низких местах, и соответствующую строку?

Привет меня интересно, как вы могли бы сделать противоположный смысл найти самые низкие места и соответствующую строку?

Заранее благодарим.
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 02:15 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0