Если можно измениться файл, чтобы иметь вкладку разделил столбцы, жизнь будет легче. Если изменение файла не является опцией, эта острота Perl сделает это для Вас:
perl -ne 's/\s+/\t/g; s/([a-z])\s([a-z])/$1 $2/ig; s/\t$/\n/; print;' file |
sort -t$'\t' -nk3
Kuala Lumpur 78 56
Tokyo 85 60
Seoul 85 66
Karachi 95 75
Lahore 85 75
Manila 90 85
ОБЪЯСНЕНИЕ:
s/\s+/\t/g
: измените ВСЕ пробелы на ВКЛАДКИ.s/([a-z])\s([a-z])/$1 $2/ig
: измените ВКЛАДКИ, которые являются между двумя буквами (никакие числа) назад к одиночным пробелам.s/\t$/\n/
: первая замена представляет ВКЛАДКУ в конце каждой строки, возвратите это к символу новой строки (\n
).
sort -t$'\t' -nk3
: используйте ВКЛАДКУ в качестве разделителя (вид имеет странный синтаксис там, я знаю, вижу здесь для получения дополнительной информации), и вид численно на третьем столбце.
Если опция [112801]-0[112802] (или эквивалентная) недоступна, вы можете это сделать, но будьте осторожны, ни одно из имен файлов не содержит новой строки:
cpio[112804] также должно поддерживать опцию [112805]-L[112806], хотя будьте осторожны, так как в некоторых случаях это может привести к бесконечному циклу.[112388].
Итак, ниже приведено больше того, что вы имели в виду, однако, как указывает Graeme, [112785]cpio -pdm[112786] сохранит первоначальную структуру каталога, [112787]cp[112788] скопирует только в целевой каталог.
Я оставляю этот ответ, чтобы подчеркнуть разницу между Graeme и этим решением. Так как я действительно думаю, что это что-то добавляет к общему ответу на исходный вопрос. Другие читатели могут найти это интересным[112380].
Это сохраняет отметки времени в каталогах и файлах:
find . -mtime -60 -type f -exec cp --parents -fuav {} /tmp/2 \;
Протестировано с использованием CentOS 7.2.