Solved

I want to make a shell script (bourne)

Posted on 2003-11-13
10
344 Views
Last Modified: 2013-12-27
I want to make a script in order to strip the last spaces of ever line of my file
for example I have:
jjj@hotmail.com_ _ _ _ _ _
kk23@hotmail.com_ _ _ _ _
luuu78a@hotmail.com_ _ _
and I would like to have as result the following:
jjj@hotmail.com
kk23@hotmail.com
luuu78a@hotmail.com
0
Comment
Question by:vage78
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 45

Accepted Solution

by:
sunnycoder earned 20 total points
Comment Utility
Hi vage78,

sed -e 's/ *$//' input_file > output_file
mv -f output_file input_file

Cheers!
Sunny:o)
0
 

Author Comment

by:vage78
Comment Utility
Hi  sunnycoder
Can you please explaine me the parameters of your command?
Thank you
0
 
LVL 45

Expert Comment

by:sunnycoder
Comment Utility
sed -e 's/ *$//' input_file
          ^    ^
search and replace: all space characters at the end of the line with NULL ... this is simple sed syntax
0
 

Author Comment

by:vage78
Comment Utility
Hi sunnycoder
I forgot to tell you that The character I wrote with the sign _ is
space character. I don't know if this would change your command
0
 
LVL 45

Expert Comment

by:sunnycoder
Comment Utility
I knew that
sed -e 's/ *$//' input_file
             ^ this is space char here
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:vage78
Comment Utility
In order to reconfirm what we said
1)I want to cutt of the spaces which exist an at every line at the last positions of every line (after every email address)
2)What exactly does *$
3) why you are using mv -f output_file input_file

0
 
LVL 45

Expert Comment

by:sunnycoder
Comment Utility
I suggest you try running the script

1)I want to cutt of the spaces which exist an at every line at the last positions of every line (after every email address) --- this is what the script does
2)What exactly does *$
it means all instances of space followed by end of line
3) why you are using mv -f output_file input_file
sed will produce output /edited file to stdout .. we redirect it to another file and then replace input file with it
0
 
LVL 48

Expert Comment

by:Tintin
Comment Utility
Hi vage78.

Perhaps I can clarify some of your questions about sunnycoder's solution.

Where, sunnycoder wrote:

sed -e 's/ *$//' input_file > output_file
mv -f output_file input_file


I would write it as

sed 's/ *$//' input_file >output_file  && mv output_file input_file

The -e option on sed is not needed if you are just doing a single replacement and the -f flag on mv is not needed either.

So the sed regular expression translates to:

' *' - means match zero or more spaces
'$' - means match the end of the line

so putting it together, it is matching zero or more spaces to the end of the line.  This is then replaced with nothing, effectively deleting them.



0
 

Expert Comment

by:sagar24
Comment Utility
HI
I think below swd command will give you the desired output
sed 's/ .*$//g' inputfile >output file

Regards
 sagar

           
0
 
LVL 48

Expert Comment

by:Tintin
Comment Utility
sagar24.

Your solution won't work as it will match the first space and delete everything up to the end of the line.
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

When you do backups in the Solaris Operating System, the file system must be inactive. Otherwise, the output may be inconsistent. A file system is inactive when it's unmounted or it's write-locked by the operating system. Although the fssnap utility…
Let's say you need to move the data of a file system from one partition to another. This generally involves dismounting the file system, backing it up to tapes, and restoring it to a new partition. You may also copy the file system from one place to…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now