Here is a simple script which will add a pipe symbol '|' to the start and end of every line in a text file.
Well do not ask why I need to do this, it was needed for some nasty text files which we have to deal with in our day to day works.
Someone will argue why the hell we need a script for this simple task when we can do the same with 'vi', well I must say chill mate...yes there are more then one way to do the work done, and using the script way you don't have to open a file or what if you have to work with more then one txt file? its easy to run a script "add_pipe" and sit back instead of vi file1;vi file2. :)
Script can be easily modified to accept the "SOURCEDIR" from command line or adding any other symbol, currently I put all such text files in /tmp/manual before running the script.
The Script:
#!/bin/sh
# Purpose: To add pipe '|' to begin and end of line in a txt file.
# Date: 2010-02-25
# add_pipes
# Directory to where files need to process for adding pipe
SOURCEDIR="/tmp/manual"
# Change to source directory
if [ -d "$SOURCEDIR" ];then
cd "$SOURCEDIR"
else
exit 1
fi
# First convert the files to Unix (if imported from M$ files carries the carrige return
CR='\015' # Carriage return.
# 015 is octal ASCII code for CR.
# Lines in a DOS text file end in CR-LF.
# Lines in a UNIX text file end in LF only.
for file in $(ls)
do
if [ ! -d "$file" ];then
tr -d $CR < $file >newname
mv newname $file
fi
done
# Finally add pipe by loop through files
for file in $(ls)
do
if [ ! -d "$file" ];then
#sed -e 's/^/|/g' -e 's/\r$/|/g' < $file >newname
sed -e 's/^/|/g' -e 's/$/|/g' < $file >newname
mv newname $file
fi
done
# End
I wonder if that script could also run in Turbo C or java .. If the answer is no, maybe there's other way to translate it into C. Thanks!
ReplyDeleteRang gora karne ka tarika
ReplyDeleteHeight Badhane Ke Upay
Facebook Account Kaise Banaye
Study Ka Right Format
Twitter Account Kaise Chalate Hai
Gmail Id Kaise Banaye
Get your bulk sms service in chennai now bulk sms service in chennai at exciting offer prices.
ReplyDelete