Skip to main content

File Handling using Shell Scripts

File handling using Shell Scripts

  1. to prepend a line to a file
  2. to develop a temporary file name generator
  3. to compare two files

Requirements:

    Suse Linux, BASH Scripting

Program

(a) Prepending a line to a file


 

#!/bin/bash

# prepend.sh: Add text at beginning of file.


 

E_NOSUCHFILE=65


 

read -p "File: " file   # -p arg to 'read' displays prompt.

if [ ! -e "$file" ]

    then   # Bail out if no such file.

    echo "File $file not found."

    exit $E_NOSUCHFILE

fi


 

read -p "Title: " title

cat - $file <<<$title > $file.new

echo "Modified file is $file.new"

exit 0


 

(b) to develop a temporary file name generator

#!/bin/bash

# tempfile-name.sh:  temp filename generator

BASE_STR=`mcookie`   # 32-character magic cookie.

POS=11               # Arbitrary position in magic cookie string.

LEN=5                # Get $LEN consecutive characters.

prefix=temp          #  This is, after all, a "temp" file.

#  For more "uniqueness," generate the filename prefix

#+ using the same method as the suffix, below.


 

suffix=${BASE_STR:POS:LEN}

# Extract a 5-character string, starting at position 11.

temp_filename=$prefix.$suffix

# Construct the filename.

echo "Temp filename = "$temp_filename""

# sh tempfile-name.sh

# Temp filename = temp.e19ea

exit 0


 

(c) Comparing two files

#!/bin/bash

ARGS=2  # Two args to script expected.

E_BADARGS=65

E_UNREADABLE=66

if [ $# -ne "$ARGS" ]

then

  echo "Usage: `basename $0` file1 file2"

  exit $E_BADARGS

fi


 

if [[ ! -r "$1" || ! -r "$2" ]]

then

  echo "Both files to be compared must exist and be readable."

  exit $E_UNREADABLE

fi


 

cmp $1 $2 &> /dev/null  # /dev/null buries the output of the "cmp" command.

if [ $? -eq 0 ]         # Test exit status of "cmp" command.

then

  echo "File \"$1\" is identical to file \"$2\"."

else  

  echo "File \"$1\" differs from file \"$2\"."

fi

exit 0


 


 

Observation:

Open the VI editor

$: vi <filename>

Compile using bash

$: sh <filename>

Comments

Popular posts from this blog

Implementing a new system call in Kernel version 2.6.32

A system call is used by application or user programs to request service from the operating systems. Since the user programs does not have direct access to the kernel whereas the OS has the direct access. OS can access the hardware through system calls only. The following files has to be modified for implementing a system call /usr/src/linux-2.6.32.5/arch/x86/kernel/syscall_table_32.S /usr/src/linux-2.6.32.5/arch/x86/include/asm/unistd_32.h /usr/src/linux-2.6.32.5/include/linux/syscalls.h /usr/src/linux-2.6.32.5/Makefile New set of files to be created Create a new directory newcall/ inside the path “ /usr/src/linux-2.6.32.5/ ” Create new files Makefile, newcall.c and put them in the /usr/src/linux-2.6.32.5/newcall/ folder Create new user files (in any folder of Linux) to test the system call testnewcall.c, testnewcall.h (created in /home/pradeepkumar ) syscall_table_32.S Find the file /usr/src/linux-2.6.32.5/arch/x86/kernel/syscall_tab

How to Access MOODLE in Intranet and Internet

When Moodle is accessed either in Intranet or internet, there will not be any issue. But occasions when the MOODLE Site has to be accessed both in the intranet and in the Internet, here is a simple trick Server Used: IBM Blade Servers Operating system: Windows Server 2008 Moodle Version: 2.4 WAMP Server is used. Number of Users: 3000 (Students) + 200 (Faculty) Open the config.php from ~/moodle/config.php include these lines $CFG->wwwroot = 'http://'.$server_id.'/vitcc'; $CFG->dataroot  = 'C:\\wamp\\moodledata'; before the following line $CFG->directorypermissions = 07xx; Restart the WAMP Server and you can Check MOODLE Site both in Internet and Intranet. The above Image tells the intranet Link and the internet link can be opened outside the campus network

Electrical Machine Design (equations)

Factors DC Machine Transformers Induction Machines Synchronous Machines Output Equation P a =C o D 2 Ln, where Pa=P/h for generators, Pa=P for motors For Single Phase Q=2.22 f B m A i K w A w d 10 -3 For Three Phase Q=3.33 f B m A i K w A w d 10 -3 Q=C o D 2 L n s KVA Input Q= HP * 0.746 / Cos f * h Q=C o D 2 L n s KVA Input Q= HP * 0.746 / Cos f * h For Turbo alternators Q=1.11B av ac K ws V a 2 L 10 -3 /n s Output Coefficient C o =B av ac* 10 -3 where Bav-magnetic loading and ac - electric loading DNA C o =11 K ws B av ac 10 -3 C o =11 K ws B av ac 10 -3 Choice of Magnetic Loading Flux Density in Teeth Frequency of Flux Reversals Size of machine DNA Magnetizing current, Flux Density, Iron loss Iron loss, Stability, Voltage Rating, Parallel Operation, Transient ShortCircuit current