datafile.each(s ->
s.chomp!
s.size.println # output size of line
)
lines = datafile.lines
whole_file = file.whole
["One", "two", "three" ].each(print(handle,)) # "Onetwothree"
println("Baa baa black sheep.") # Sent to default output handle
buffer = handle.read(4096)
handle.truncate(length)
"tmp/{Sys::pid}.pid".truncate(length)
pos = datafile.tell_seek
println("I'm {pos} bytes from the start of DATAFILE.")
logfile.seek!(End)
datafile.seek!(0)
out.seek!(out.tell_seek - 20)
datafile = datafile.print(mystring)
block = infile.read(256) # can't do offset writing of 5
|
while not fh.empty? do
lines = fh.take_while(substr!?(, "\\$", ""))
line = lines.join("")
# process full record in {line} here
|
file.open.lines.size
f = file.open(Sep_keep("\n+")) # enable paragraph mode for "line", "lines", "each"...
f.lines.size |
Sys::stdall.each(s ->
s.words.each(word ->
# do something with {word}
)
)
Sys::stdall.reopen(Sep("\s+")).each(s ->
# do something with {word}
)
# Make a word frequency count
seen = {}
Sys::stdall.reopen(Sep("\s+")).each(s -> seen{s.downcase}++)
# output hash in a descending numeric sort of its values
seen.keys.sort_by(a,b -> seen{b} <=> seen{a})
.iter(word -> "%5d %s\n".printf(seen{word}, word))
# Line frequency count
seen = {}
Sys::stdall.each(s -> seen{s.downcase}++)
# output hash in a descending numeric sort of its values
seen.keys.sort_by(a,b -> seen{b} <=> seen{a})
.iter(line -> "%5d %s".printf(seen{line}, line)) |
file.lines.reverse.each(line ->
# do something with {line}
)
file.open(Sep_keep("\n+")).lines.reverse.each(paragraph ->
# do something with paragraph
) |
loop
fh.each(line ->
# ...
)
sleep(sometime)
# clearerr?
|
i = 0
line = stdall.find(_ -> i++ ; random(i) == 0)
# {line} is the random line
i = 0
adage = "/usr/share/games/fortunes"
.open(Sep("%\n"))
.find(_ -> i++ ; random(i) == 0)
adage.print |
input.lines.randomize.each(s -> output.print(s)) |
i = 0
line = handle.find(_ -> i++ ; i == desired_line_number)
line = handle.to_list[desired_line_number]
build_index(data_file, index_file) =
offset = 0
in.each(_ ->
out.print(offset.pack("N"))
offset = in.tell_seek
)
line_with_index(data_file, index_file, line_number) =
i_offset = line_number-1 * pack_size("N")
index_file.seek!(i_offset) or return
entry = index_file.read(pack_size("N"))
d_offset = entry.unpack("N")
data_file.seek!(d_offset)
data_file.line
# usage:
in = file.open
index = "{file}.idx".open(R | W)
build_index(in, index)
line = line_with_index(in, index, seeking) |
"3+5-2".split("([+-])") #=> [ "3", "+", "5", "-", "2" ]
fields = record.split(":")
fields = record.split("\s+")
fields = record.words |
fh = file.open(R | W) addr = 0 fh.each(_ -> addr = fh.tell_seek if not file.empty?) fh.truncate!(addr) |
# don't care about non-UNIX ;pp |
address = recsize * recno fh.seek!(address) buffer = fh.read(recsize) |
address = recno * pack_size(format)
fh.seek!(address)
fields = fh.read_unpack(format)
# update fields, then
fh.seek!(address)
fields.pack_print(format, fh)
# weekearly -- set someone's login date back a week
user = Sys::args[0] or Sys::env{"USER"} or Sys::env{"LOGNAME"}
typedef = "L A12 A16" # linux fmt; sunos is "L A8 A16"
address = Sys::getpwnam(user){Uid} * pack_size(typedef)
lastlog = "/var/log/lastlog".open(R | W)
or die("can't update /usr/adm/lastlog: {Sys::errno_string}")
lastlog.seek!(address)
(time, line, host) = lastlog.read_unpack(typedef)
time -= 24 * 7 * 60 * 60 # back-date a week
lastlog.seek!(address)
(time, line, host).pack_print(typedef, lastlog) |
file : addrs = Sys::args
if addrs == [] then die("usage: {Sys::progname} addr ...\n")
fh = file.open(Sep("\0"))
addrs.each(s ->
fh.seek!(s.to_int)
qq(%#x %#o %d "%s"\n).printf(addr, addr, addr, fh.line)
) |
while not file.empty? do
fields = file.read_unpack(template)
# use fields
|
config.each(s ->
s.chomp! # no newline
s.subst!("#.*", "") # no comments
s.chop_bounding_spaces! # no leading white, no trailing white
s.m!(
"(\S*)\s*=\s*(.*)",
var, value -> User_Preferences{var} = value
)
) |
info = File::stat(filename)
println("Superuser owns filename") if info{Uid} == 0
println("filename has been read since it was written.") if info{Atime} > info{Mtime} |