文件读取问题

发布于 2024-11-04 17:32:18 字数 365 浏览 3 评论 0原文

f = File.open("/test/serverlist.txt", "r")
list = f.readlines
list.each do|servers|
  File.open('/test/results.txt','w') do |b|
  servers.each do |p|
    r = `ping -n 1 #{p}`
    b.puts r
  end
end

它读取 serverlist 文件,并返回一个字符串。 serverlist 文件包含以下 IP 地址:

192.168.150.254
192.168.120.2
f = File.open("/test/serverlist.txt", "r")
list = f.readlines
list.each do|servers|
  File.open('/test/results.txt','w') do |b|
  servers.each do |p|
    r = `ping -n 1 #{p}`
    b.puts r
  end
end

It reads the serverlist file, and returns a string. The serverlist file contains the following IP addresses:

192.168.150.254
192.168.120.2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

椵侞 2024-11-11 17:32:18

您是否希望读取文件中的每一行,然后执行类似这样的操作。

fout = File.open('/test/results.txt','w')
File.open("/test/serverlist.txt", "r").each_line do |server|
   server.chomp!
   r = `ping -n 1 #{server}`
   fout.puts r
end

Are you looking to read each line from the file and then do something with like this.

fout = File.open('/test/results.txt','w')
File.open("/test/serverlist.txt", "r").each_line do |server|
   server.chomp!
   r = `ping -n 1 #{server}`
   fout.puts r
end
满栀 2024-11-11 17:32:18

我认为您不需要迭代服务器线路本身,并且添加了一些样式 mods 并更改了 ping(1) 参数,我建议...

open 'serverlist.txt', 'r' do |f|
  open '/tmp/results.txt', 'w' do |b|
    f.readlines.each do |server|
      b.puts `ping -c 1 -t 1 #{server}`
    end
  end
end

I don't think you will need to iterate over the server line itself, and with a few style mods added and ping(1) arguments changed, I would suggest...

open 'serverlist.txt', 'r' do |f|
  open '/tmp/results.txt', 'w' do |b|
    f.readlines.each do |server|
      b.puts `ping -c 1 -t 1 #{server}`
    end
  end
end
北方。的韩爷 2024-11-11 17:32:18

只需使用 b.write 代替 b.puts

Just use b.write in place of b.puts

遥远的绿洲 2024-11-11 17:32:18

如果你使用的是linux,你可以直接使用

File.open("serverlist.txt").each { |addy| `echo "#{`ping -c 1 #{addy}`}" >> result.txt` }

它并很好地完成它

..也许

`echo "# server-availability" > result.txt`

在上面的行之前添加,这样每次你调用这个文件时都会重置文件

if you're using linux you could just go for

File.open("serverlist.txt").each { |addy| `echo "#{`ping -c 1 #{addy}`}" >> result.txt` }

and be done with it

well .. maybe add

`echo "# server-availability" > result.txt`

before the above line so the file gets reset every time you call this

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文