Как вставить строку, используя в файл в алфавитном порядке, используя сценарий оболочки - PullRequest
1 голос
/ 09 июня 2011

Как я могу вставить строки в файл, используя сценарий оболочки, чтобы они вставлялись в алфавитном порядке, следующее объяснит лучше.

входной файл содержит:

1 hsdfd
2 bsdfd
3 ekksdf
.
.

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

< root > <br>
< devices name="bsdfd" value=2 > <br>
 < details info="xxxxxxxxxxxxxxxxx"> <br>
 < details info="yyyyyyyyyyyyyyyyy"> <br>
< /devices > <br>
< devices name="ekksdf" value=3 > <br>
 < details info="xxxxxxxxxxxxxxxxx"> <br>
 < details info="yyyyyyyyyyyyyyyyy"> <br>
< /devices > <br>
< devices name="hsdfd" value=1 > <br>
 < details info="xxxxxxxxxxxxxxxxx"> <br>
 < details info="yyyyyyyyyyyyyyyyy"> <br>
< /devices > <br>
< /root>

Ответы [ 2 ]

1 голос
/ 09 июня 2011
echo "1 hsdfd
2 bsdfd
3 ekksdf " | sort -k 2 

2 bsdfd
3 ekksdf 
1 hsdfd

Итак, если есть второй файл и вы хотите отсортировать результат:

cat file1 file2 | sort -k 2 > sorted

обновлено: после вашего редактирования я бы использовал sed для основной работы, после вызова sort:

echo "1 hsdfd
2 bsdfd
3 ekksdf" | sort -k 2  | sed -r 's/(.*) (.*)/foo \2 bar \1/;a\nyell\nprok'

foo bsdfd bar 2
nyell
prok
foo ekksdf bar 3
nyell
prok
foo hsdfd bar 1
nyell
prok

Немного косметики с кошкой в ​​конце, для нижнего колонтитула и заголовка. Готово. :)

0 голосов
/ 09 июня 2011

sort -k 2,2 input.txt > output.txt

См. http://ss64.com/bash/sort.html

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