Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias write {
if ($regex($1, /^-dl(\d+\+|\d+-\d+|\d+-|\d+\+\d+)$/)) {
var %file = $2
if (!$isfile(%file)) { echo -s [write] Dosya bulunamadı: %file | return }
var %win = $+(@write_,$ticks)
window -h %win
loadbuf -r %win %file
var %total = $line(%win, 0)
var %start = 0, %end = 0
if ($regex($1, /^-dl(\d+)\+$/)) {
%start = $calc($regml(1) + 1)
%end = %total
}
; -dlX-Y
elseif ($regex($1, /^-dl(\d+)-(\d+)$/)) {
%start = $regml(1)
%end = $regml(2)
}
elseif ($regex($1, /^-dl(\d+)-$/)) {
%start = 1
%end = $regml(1)
}
elseif ($regex($1, /^-dl(\d+)\+(\d+)$/)) {
%start = $regml(1)
%end = $calc(%start + $regml(2) - 1)
}
if (%start < 1) || (%end < %start) || (%end > %total) {
window -c %win
echo -s [write] Geçersiz satır aralığı (%start - %end)
return
}
var %tmp = write_temp.txt
if ($exists(%tmp)) .remove %tmp
var %i = %start
while (%i <= %end) {
var %line = $line(%win, %i)
if (%line != $null) write %tmp %line
inc %i
}
.remove %file
.rename %tmp %file
window -c %win
echo -s ? /write $1 $2 tamamlandı. Satırlar: %start - %end
}
else {
!write $1-
}
}
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/write -dl10- dosya.txt -> İlk 10 satır kalır
/write -dl5+ dosya.txt -> Sadece 6. satırdan sonrası kalır
/write -dl5-15 dosya.txt -> 5–15 arası kalır
/write -dl20+5 dosya.txt -> 20’den başlayarak 5 satır kalır (20–24)