Cara membalikkan file teks pada Windows

3

Bagaimana cara membalik konten file .txt sambil mempertahankan baris kosong?

Sebagai contoh,

text one

text two
text three

text four


text five


text six

akan menjadi

text six


text five


text four

text three
text two

text one

Lebih disukai dengan konsol Windows atau juga kode sumber untuk dikompilasi dari ke suatu aplikasi. Saya memiliki Windows 7.

IKLAN
sumber
(Membalas posting saya sendiri karena saya tidak dapat mengirim jawaban dengan reputasi <10. Terima kasih atas balasan Anda!) Saya menemukan sesuatu: tac, yang merupakan bagian dari CoreUtils untuk Windows . Saya baru saja mengujinya dan itu berfungsi dengan baik untuk saya.
AD
Kemungkinan duplikat dari Cara membalikkan file teks di Windows
and31415
1
Saya bahkan memeriksa dua kali bahwa saya tidak di http://codegolf.stackexchange.com/
VL-80
Tag dihapus dari pertanyaan Anda karena suatu alasan. Tag ini tidak berguna dan tidak menambah nilai pada pertanyaan Anda.
Der Hochstapler
Beberapa jawaban di Balik atau urutan terbalik di Notepad ++ seharusnya ada di sini.
Peter Mortensen

Jawaban:

6

Ini dapat dilakukan dengan mudah dengan PowerShell tanpa alat tambahan:

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

Saya menemukan alat yang sempurna untuk ini: tac (bagian dari CoreUtils untuk Windows )

IKLAN
sumber
1
Silakan baca Cara merekomendasikan perangkat lunak untuk informasi minimum yang diperlukan dan saran lain tentang cara merekomendasikan perangkat lunak pada Pengguna Super. Agar jawaban Anda bermanfaat bahkan jika tautan yang disertakan rusak, harap edit detail ini ke dalam jawaban Anda.
Peniru Twisty
1

Contoh PowerShell lainnya. Ini hanya menunjukkan pembalikan. Akan sepele untuk mengekspor $ x ke file.

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

Saya akan membaca file dalam urutan terbalik (menggunakan skrip, program, dll.) Dan menulisnya ke file 'baru' sehingga menghindari pengurutan. Kemudian, hapus file 'lama' dan ganti nama yang 'baru' menjadi yang 'lama'.

rrirower
sumber
0

Dalam kebanyakan kasus, pengurutan tipikal tidak akan mempertahankan garis kosong Anda, tetapi sebaliknya akan menempatkan semuanya bersama di suatu tempat dalam pengurutan Anda. Jika itu saya, saya hanya akan menyalin dan menempelkan baris di Excel dan mengurutkan di sana jika itu hanya satu hal. Kalau tidak, Anda akan masuk ke beberapa scripting yang sangat mewah untuk melakukan ini (tapi hei, itu mungkin dilakukan).

Adapun skrip saya pertama-tama memiliki beberapa kode yang mencari baris kosong dan menyimpan lokasi itu ke array. Lalu saya akan mengurutkan sisa data, baik menggunakan beberapa metode pengurutan bawaan atau membuat kode "semacam gelembung" saya sendiri. Setelah diurutkan, perkenalkan kembali jeda baris di lokasi yang diberikan dan Anda akan ditetapkan.

Bradley Forney
sumber
0

Ini adalah sesuatu yang asli - skrip 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

Simpan sebagai (mis.) Revfile.vbs dan jalankan dengan menggunakan mesin cscript. Seperti yang tertulis, ini menggemakan output ke konsol. Untuk menulis baris terbalik ke file, gunakan >operator (redirection) seperti ini:

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

Gunakan tanda kutip di sekitar nama file / jalur jika mereka memiliki spasi.

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
Michael Harvey
sumber