Як повернути текстовий файл у Windows


3

Як повернути вміст файлу .txt, зберігаючи порожні рядки?

Наприклад,

text one

text two
text three

text four


text five


text six

став би

text six


text five


text four

text three
text two

text one

Переважно з консолі Windows або також вихідного коду для компіляції з програми. У мене Windows 7.


(Відповідаючи на власне повідомлення, оскільки я не можу розмістити відповідь з репутацією <10. Дякую за ваші відповіді!) Я знайшов щось: tac, що є частиною CoreUtils для Windows . Я просто перевірив це, і він працює чудово.
AD

Можливий дублікат способу повернення текстового файлу в Windows
and31415

1
Я навіть двічі перевіряв, що я не на http://codegolf.stackexchange.com/
VL-80

Теги було видалено з вашого питання чомусь. Ці теги не корисні і не додають нічого важливого вашому запитанню.
Der Hochstapler

Відповіді:


6

Це легко зробити за допомогою PowerShell без додаткових інструментів:

$x = Get-Content -Path data.txt; Set-Content -Path data.txt -Value ($x[($x.Length-1)..0])

2

Я знайшов ідеальний інструмент для цього: tac (частина CoreUtils для Windows )


1
Прочитайте, як рекомендувати програмне забезпечення для мінімально необхідної інформації та інші пропозиції щодо того, як рекомендувати програмне забезпечення для Super User. Щоб відповідь була корисною, навіть якщо включені перерви посилань (-ів), відредагуйте ці дані у своїй відповіді.
Twisty Impersonator

1

Ще один приклад PowerShell. Це просто показує реверс. Експорт $ x у файл було б тривіально.

$x = Get-Content -Path .\abc.txt
[array]::Reverse($x)
$x

0

Я прочитав би файл у зворотному порядку (використовуючи сценарій, програму тощо) і записував би його у новий файл, уникаючи подібного роду. Потім видаліть "старий" файл і перейменуйте "новий" на "старий".


0

У більшості випадків типовий сорт не збереже ваші порожні рядки, але замість цього він розмістить їх разом десь у вашому виді. Якби це я, я б просто скопіював і вставив рядки в Excel і сортував там, якщо це просто якась одноразова річ. Інакше ви потрапите в якийсь справді химерний сценарій, щоб зробити це (але ей, це можна зробити).

Щодо сценарію, я спершу маю якийсь код, який шукає порожні рядки і зберігає це місце в масиві. Тоді я б сортував решту даних або використовуючи якийсь вбудований метод сортування, або робив власний код "сортування міхурів". Після сортування введіть знову розриви рядків у вказаних місцях, і вам буде встановлено.


0

Ось щось рідне - сценарій VBScript (.vbs).

Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
infile = Wscript.Arguments(0)
Set objTextFile = objFSO.OpenTextFile (infile, ForReading)
strText = objTextFile.ReadAll
objTextFile.Close
arrText = Split(strText, vbCrLf)
for l = ubound(arrText)-1 to 0 step -1
   wscript.echo arrText(l)
Next

Збережіть його як (наприклад) revfile.vbs та запустіть його за допомогою двигуна cscript. Як написано, це відлуння виходу на консоль. Щоб записати перевернуті рядки у файл, використовуйте >оператор (перенаправлення) таким чином:

cscript //nologo revfile.vbs "input.txt" > "output.txt"

Використовуйте лапки навколо назв / шляхів файлів, якщо вони мають пробіли.

C:\Test>type input.txt
apple
bear
cat
dog
egg
fog
gas
hip

ink
joe
kilo

C:\Test>type output.txt
kilo
joe
ink

hip
gas
fog
egg
dog
cat
bear
apple
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.