저는 거의 루비 -nOOb입니다. (몇 가지 기본 .erb 템플릿이나 꼭두각시 사용자 정의 사실을 작성하는 데 Ruby에 대한 지식 만가집니다). 내 요구 사항은 매우 간단하지만 내 머리를 감당할 수는없는 것처럼 보입니다.주석 처리 된 행을 제외하고 배열로 파일을 읽어들입니다.
.erb
템플릿을 작성하려고 시도합니다. 여기서 파일은 (공백으로 구분 된 행이있는) 파일을 배열로 읽은 다음 요구 사항에 따라 각 배열 요소를 처리합니다. 이것은 내가 지금까지 무엇을 가지고 있습니다 :
fname = "webURI.txt"
def myArray()
#if defined? $fname
if File.exist?($fname) and File.file?($fname)
IO.readlines($fname)
end
end
myArray.each_index do |i|
myLine = myArray[i].split(' ')
puts myLine[0] +"\t=> "+ myLine.last
end
. 나는 또한 스페이스 (스페이스)로 뱉어 낼 때, 라인에 필드가 두 개 이상 있으면 안되는 지 확인하고 싶다. 이 같은 파일 : 그래서
# This is a COMMENT
#
# Puppet dashboard
puppet controller-all-local.example.co.uk:80
# Nagios monitoring
nagios controller-all-local.example.co.uk::80/nagios
tac talend-tac-local.example.co.uk:8080/org.talend.admin
mng console talend-mca-local.example.co.uk:8080/amc # Line with three fields
는, 기본적으로 내가 좋아하는 것이 두 가지를 달성하기 위해 :
- 배열로 라인을 읽고, 첫
#
- 분할 각 요소 후 모든 전원을 제거 숫자 2 이상인 경우 메시지를 인쇄하십시오.
어떤 도움을 주시면 감사하겠습니다. 건배!! 당신의 도움에 대한
업데이트 25/02
감사합니다 사람!
blank
것은 전혀 작동하지 않습니다. 이 오류가 발생했습니다. 그러나 나는 왜 그 이유를 이해하지 못했습니다 :
'blank?' "\ n을"에 대한 : 문자열 (NoMethodError)
가 배열 : myArray
, 내가 얻을이 같은 (puts
대신 p
를 사용하여 실제로 : 따라서
["\n", "puppet controller-all-local.example.co.uk:80\n", "\n", "\n", "nagios controller-all-local.example.co.uk::80/nagios\n", ..... \n"]
, 내가해야 할 일을했을 이이 확률값 둘러 보는 :.
$fname = "webURI.txt"
def myArray()
if File.exist?($fname) and File.file?($fname)
IO.readlines($fname).map { |arr| arr.gsub(/#.*/,'') }
end
end
# remove blank lines
SSS = myArray.reject { |ln| ln.start_with?("\n") }
SSS.each_index do |i|
myLine = SSS[i].split(' ')
if myLine.length > 2
puts "Too many arguments!!!"
elsif myLine.length == 1
puts "page"+ i.to_s + "\t=> " + myLine[0]
else
puts myLine[0] +"\t=> "+ myLine.last
end
end
당신은 코드를 개선 환호 가장 환영합니다!
당신은'.reject을 추가 할 수 있습니다 할 수있는 코멘트. – gmaliar
고마워요!또한 첫 번째'# '에서 모든 것을 제거하여 인라인 코멘트 (예 : Abc Bcd # 인라인 코멘트)를 처리하려면 어떻게해야합니까? 건배!! – MacUsers
내 대답을 편집했습니다. – gmaliar