Monday, November 23, 2009

Shell script: check for a exact pattern in a file


-----------------------------------------
#!/bin/sh
#bash
#generatehtml.sh

if [ -f output ]
then rm output
fi

if [ -f discussionJumpPage.html ]
then rm discussionJumpPage.html
fi

echo 'http://blind.apple.com/featured/featuredlist.php' >> output

baseUrl='http://blind.com/featured/featuredlist.php?limit=500&skip='
flag=1
skip=500

while [ $flag -eq 1 ]
do
url=$baseUrl$skip
echo $url >> output
if curl -l $url | grep -o '>next 500<'
then
skip=`expr $skip + 500`
echo "skip = "$skip
else
flag=`expr $flag - 1`
fi


Shell script to read lines from a file

1) Read lines from a file having only one word in each row
-----------------------------------------------
for server in `cat $SERVER` # file name
{
echo "Starting scp to server :...... "$server
}
-----------------------------------------------

here each line will come in variable server. SERVER is the name of the input file which is a variable file name. If there are two words in one line then second word would be read in next loop.

2) Now suppose you want to read complete line in the same iteration, then below approach would help:
------------------------------
while read inputline
do
docId="$(echo $inputline | cut -d" " -f1)" #seperated by space
localeId="$(echo $inputline | cut -d" " -f2)"
echo doc = $docId and locale = $localeId
done (less than sign ) REPORT
--------------------------------

Monday, November 16, 2009

Read from a file, jdbc query and then write to a file

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;



public class FinalClass {
final static String driverClass = "oracle.jdbc.OracleDriver";
final static String connectionURL="jdbc:oracle:thin:@fawkessa.corp.apple.com:1867:test";
final static String userID = "ima_owner_80";
final static String userPassword = "ima_owner_80";
static Connection oraConnection = null;
public static int countDoc=0;
static Statement stmt1 =null;
ResultSet rset1 =null;
private static BufferedWriter bufferedWriter = null;

public void checkInDB(String docId,String localeId){
String input=null;
try{
//System.out.println("-----------------"+docId+localeId);
String contenttextpub="select count(*) from contenttextpub where documentid='"+docId+"'"+"AND localeid='"+localeId+"'";;
rset1 = stmt1.executeQuery(contenttextpub);
//String s = rs.getString(1);
while(rset1.next()){ //System.out.println(rset1.getString(1)+"querry output........................"+rset1.getString(1).equals("0"));
//System.out.println(countDoc+")"+docId+","+localeId+"output is "+rset1.getString(1));
if(rset1.getString(1).equals("0")){
countDoc++;
System.out.println(countDoc+")"+docId+","+localeId+"output is "+rset1.getString(1));
bufferedWriter.write(countDoc+")"+docId+","+localeId);
bufferedWriter.newLine();
bufferedWriter.flush();
}
}
}catch(Exception e){
System.out.println("db exception "+e);
}
}

public static void main(String[] args){
System.out.println("calling");
FinalClass obj = new FinalClass();
try{
Class.forName(driverClass).newInstance();

//System.out.print(" Connecting to -> " + connectionURL + "\n");
oraConnection = DriverManager.getConnection(connectionURL, userID, userPassword);
//System.out.print(" Connected as -> " + userID + "\n");
stmt1 = oraConnection.createStatement();
}catch(Exception e){
System.out.println("exception e"+e);
}
String filename = "/Users/admin/Applications/workspace/InQuiraJar/src/LiveDetailsProdCo1.txt"; //input.rtf -UAT
try{
File fileliveDetails = new File(filename);
BufferedReader FileInputStream1= new BufferedReader(new FileReader(filename));
bufferedWriter=new BufferedWriter(new FileWriter("/Users/admin/Applications/workspace/InQuiraJar/src/newOUTPUT.rtf"));
String line=null;
do{
line = FileInputStream1.readLine();

//line has entries like .. /ngs/app/fsnt/oa/suuser/base/Scopes/iKnew/abc/instances/iknewco1/appserverim/webapps/ROOT/resources/sites/APPLE/content/live/MANUALS//0/MA233/en_US/AppleCare_Protection_Plan_for_Apple_TV.pdf
if(line.contains("/ngs/app/fsnt/oa/suuser/base/Sco"+"pes/iKnew/abc/instances/iknewco1/")){
String DocId=null;
String Locale=null;
//System.out.println("beginning....");
String[] DocandLoacle =new String[5];
String [] Path=line.split("//0/");
String DocIdAndLoacel=Path[1];
DocandLoacle=DocIdAndLoacel.split("/");
DocId=DocandLoacle[0];
Locale =DocandLoacle[1];
//System.out.println("doc id ="+DocId+" Locale= "+Locale);
//call method for checking in DB
obj.checkInDB(DocId,Locale);
}
}while(line!=null);
//String line = FileInputStream1.readLine();
//oraConnection.close();
FileInputStream1.close();
oraConnection.close();
bufferedWriter.flush();
bufferedWriter.close();
}catch(Exception e){
System.out.println("exception with file reading"+e);
}
//String input=obj.readDataFromFile();
}
}