how to split the string in a file in puppet ruby

295 views
Skip to first unread message

Spriya

unread,
Nov 25, 2014, 3:28:04 PM11/25/14
to puppet...@googlegroups.com
Hi,

I am trying to capture all paths in a text file. for that i am splitting the string into an array and the word with /java to get the paths.

Here is my ruby code

logfile = "/home/weblogic/javaapp.txt"
log = Facter::Util::FileRead.read(logfile)
log.each_line do |line|
unless log.nil?
log.each_line do |line|
   val = line.split(/  /)
    java_path = val.grep(%r!/java!)
    java_count += 1
Facter.add("java_known_weblogic_version#{java_count}") do
 setcode do
   java_path
end
end

Here is my text file
/u01/java/jdk1.7.0_72/jre/bin/java

/u01/java/jdk1.7.0_72/bin/java

/u01/java/jdk1.7.0_65/jre/bin/java

/u01/java/jdk1.7.0_65/bin/java


The facts are returning like this
java_known_weblogic_version1["/u01/java/jdk1.7.0_72/jre/bin/java\n"]
java_known_weblogic_version10[]
java_known_weblogic_version11[]
java_known_weblogic_version12[]
java_known_weblogic_version13["/u01/java/jdk1.7.0_65/bin/java\n"]
java_known_weblogic_version14[]
java_known_weblogic_version15[]

My question how to eliminate  these []  and need to return only  path /u01/java/jdk1.7.0_65/bin/java?

Anyone please help me

Felix Frank

unread,
Nov 25, 2014, 4:20:58 PM11/25/14
to puppet...@googlegroups.com
Are those caused by empty lines in the file your are iterating?

If so, you can try and add a

next if line.empty?

early in your log.each_line loop.

HTH,
Felix

On 11/25/2014 04:28 PM, Spriya wrote:
> Hi,
>
> I am trying to capture all paths in a text file. for that i am splitting
> the string into an array and the word with /java to get the paths.
>
> Here is my ruby code
>
> *logfile = "/home/weblogic/javaapp.txt"*
> *log = Facter::Util::FileRead.read(logfile)
> *
> *log.each_line do |line|
> *
> *unless log.nil?*
> *log.each_line do |line|*
> * val = line.split(/ /)*
> * java_path = val.grep(%r!/java!)*
> * java_count += 1*
> *Facter.add("java_known_weblogic_version#{java_count}") do*
> * setcode do*
> * java_path*
> end
> end
>
> Here is my text file
> */u01/java/jdk1.7.0_72/jre/bin/java*
> *
> *
> */u01/java/jdk1.7.0_72/bin/java*
> *
> *
> */u01/java/jdk1.7.0_65/jre/bin/java*
> *
> *
> */u01/java/jdk1.7.0_65/bin/java*
Reply all
Reply to author
Forward
0 new messages