Как поменять порядок многострочных текстовых разделов, разделенных пробелами / переводами строк?
1173
XP1
Как изменить порядок многострочных текстовых разделов, разделенных пробелами / переводами строк ...
... с помощью простой команды или приложения, желательно без программирования?
Я не хочу сортировки, но в обратном порядке только текстовые разделы.
Например:
A B 0 1 X YX Y HTTP FTP
становится
HTTP FTP X YX Y 0 1 A B
Извините, что я еще не принял ни одного ответа. Я отсутствовал некоторое время. Я принял решение Пета, потому что оно самое простое. Я проголосовал за все рабочие решения. Спасибо всем.
XP1 13 лет назад
0
3 ответа на вопрос
2
BigChief
Хотя автор не предпочитает программные решения, использование Python будет достаточно простым в 1 строке:
Очевидно, заменить input.txtи output.txtс необходимыми файлами, и изменения \nв \r\nдля Windows, отформатированных текстовых файлов.
Поместите это в .pyфайл и позвоните через python myscript.py.
+1, мне нравится однострочник. Python действительно позволяет некоторые интересные вещи
Siim K 13 лет назад
0
2
peth
tac accepts a separator, so in e.g. bash you can do:
tac -s $'\n\n' foo
which will produce slightly incorrect output because the last paragraph isn't terminated by a double newline. So,
(cat foo; echo) | tac -s $'\n\n' | sed '$d'
is probably what you'd want. (Pipe contents of foo and newline through tac, then sed to strip the last line.)
Note: Do not redirect this into > foo again as you could end up with an empty file.
+1. Оно работает. Для дальнейшего использования «foo» - это имя файла. Для вывода в файл я просто перенаправил его в новый файл с помощью этой команды: "(cat foo; echo) | tac -s $ '\ n \ n' | sed '$ d'> foo1.txt".
XP1 13 лет назад
0
1
Siim K
If you're using Windows then you could simply use Powershell. This reverses the contents of test.txt and saves the result to test2.txt:
Probably not the most elegant way but it did the job with your test case.
К сожалению, команда также меняет порядок отдельных строк в текстовых разделах, что мне не нужно. Например, порядок для «A, B» становится «B, A», где запятая и пробел являются новой строкой.
XP1 13 лет назад
0
@ XP1: я предполагаю, что это Windows?
BigChief 13 лет назад
0
@ BigChief, я работаю в Windows Vista, но я приму решения для операционных систем Windows или GNU / Linux. Несмотря на то, что я сказал, что предпочитаю решение без программирования, я приму программирование, если решение простое (например, одна строка или пара строк).
XP1 13 лет назад
0
@ XP1: извините, вчера неправильно прочитал оригинальный вопрос.
Siim K 13 лет назад
0