Re: Remove the first 3 characters after reading each line
- From: "Chris F.A. Johnson" <cfajohnson@xxxxxxxxx>
- Date: Thu, 28 Sep 2006 13:33:10 -0400
On 2006-09-28, nicetom786@xxxxxxxxx wrote:
Hi ,
I am new to unix .
I have a file to read and after reading each line I want to strip off
the first 3 characters and store in another variable.
Cut command cuts the first 3 characters but I do not how to get the
rest of letters.
For ex:
I have a line XXX_JOBNAME
Here is the code
cat jobs.txt |cut -c1-4
Thyere is no need for cat:
cut -c1-4 jobs.txt
This prints XXXX_.
I want JOBNAME to be printed .But length of JOBNAME differs in each
line.
#Logic
ext=".ksh"
for line in `cat ~/jobs.txt`
That is almost always the wrong way to read a file. You are reading
it word by word, not line by line.
do
echo $line
#remove the XXX_
#put the cut logic here after ripping of 3
characters and strore in another variale "job"
#concanat .ksh to each job = $job
job="$line$ext"
echo $job
#copy from SRC to taget
#cp ~/src/job.ksh ~/target
done
while IFS= read -r line
do
right=${line#????}
left=${line%"$right"}
: ....
done < jobs.txt
If it's a large file, awk may be faster:
awk '{
left = substr( $0, 1, 4 )
right = substr( $0, 5 )
}' jobs.txt
--
Chris F.A. Johnson, author <http://cfaj.freeshell.org/shell>
Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
===== My code in this post, if any, assumes the POSIX locale
===== and is released under the GNU General Public Licence
.
- References:
- Remove the first 3 characters after reading each line
- From: nicetom786
- Remove the first 3 characters after reading each line
- Prev by Date: Re: Remove the first 3 characters after reading each line
- Next by Date: using sed to retrieve the hour in a timestamp
- Previous by thread: Re: Remove the first 3 characters after reading each line
- Next by thread: using sed to retrieve the hour in a timestamp
- Index(es):
Relevant Pages
|