Сортировка слов по строкам в файле и вывод отсортированных строк снова - PullRequest
2 голосов
/ 25 августа 2010

Я хочу отсортировать слова по строкам в файле строка за строкой, и я хочу, чтобы результат был строками со словами, отсортированными по алфавиту.

например:

queue list word letter gum  
another line of example words  
...

Я хочу вывод:

gum letter list queue word  
another example line of words  
...  

Я не могу заставить его работать через командную строку

Я пропускаю вещи, вероятно

Ответы [ 4 ]

2 голосов
/ 25 августа 2010

Если у вас установлен Perl:

perl -ne 'print join " ", sort split /\s/ ; print "\n"'

EX:

cat input | perl -ne 'print join " ", sort split /\s/ ; print "\n"' > output
1 голос
/ 25 августа 2010

Если файл со списком слов равен foo.txt:

while read line; do
  echo $(for w in $(echo "$line"); do echo "$w"; done |sort);
done < foo.txt
0 голосов
/ 25 августа 2010

Только с awk:

gawk '{
    split($0, a)
    asort(a)
    for (i=1; i<=NF; i++) printf("%s ", a[i])
    print ""
}' infile
0 голосов
/ 25 августа 2010

Это работает для меня:

while read line
do
echo $line | tr " " "\n" | sort | tr "\n" " " ;echo
done < "input"

Идея состоит в том, чтобы:

  • читать файл строка за строкой
  • для каждой прочитанной строки, заменить пробелс новой строкой
  • отсортировать результирующий список
  • заменить новую строку пробелом и
  • print
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...