Adding a backslash to users' input


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Adding a backslash to users' input
# 1  
Old 04-29-2004
Adding a backslash to users' input

Hi,
I need to convert user-input from '(this)' to '\(this\)' before passing it to egrep. I've tried using TR, SED and NAWK to add the backslash, but the most I ever get is a backslash without a '(' or ')'.

Any ideas?

Thanks!
# 2  
Old 04-29-2004
why not put the user input into a variable then just add your sting like


egrep \"${user_input}"\ filename_to_search
# 3  
Old 04-29-2004
My goal is to insert the backslashes within the user's search string. If I understand your suggestion, the backslashes would surround the entire search string.

Notice that when I converted '(this)' to '\(this\)', the last parenthesis is preceded by a backslash.

The user's search string could easily be something like this as well: '12.1(3)T', so that the parenthesis are completely within the search string.

I hope I didn't misunderstand your suggestion.
# 4  
Old 04-29-2004
sed 's/\([()]\)/\\\1/g'
# 5  
Old 04-29-2004
Quote:
Originally posted by Perderabo
sed 's/\([()]\)/\\\1/g'
For some reason that I can't determine, this works only from a command line, not from within the script. When run from a script, my search string (which I'm echoing so I can see the conversion) looks like this:
search string: '(this)'
output: \1this\1

From the script:
search_arg=`echo "$*" | tr -s ' '` #remove redundant spaces
search_arg=`echo "$search_arg" | sed 's/\([(.)]\)/\\\1/g'`
echo "$search_arg"
# 6  
Old 04-29-2004
This is the trouble with backslashed backslashes...you need more of them each time they get evaluated. And what's with that dot? I didn't have that. I took it back out.

Try:
search_arg=`echo "$search_arg" | sed 's/\([()]\)/\\\\\1/g'`
# 7  
Old 04-29-2004
Perfect! Thanks very much!

The dot was my addition...I also want a slash in front of periods, so that they don't act as single-character wildcards.

Here's the final product:
search_arg=`echo "$*" | tr -s ' ' | sed 's/\([(.)]\)/\\\\\1/g'`
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Not able to input \ backslash when vi editor

Hi, How do I input \ when I do a vi of my file ? I try to input the \ but it came out as @. Appreciate any help. (4 Replies)
Discussion started by: snowfrost88
4 Replies

2. Shell Programming and Scripting

Adding users from a txt fille

hello i'm making a bash script for adding users from a txt fille i have a basic script that adds users and their password . when you type the users by hand , now i want to upgrade my script with a txt file of users and their password , but i don't know how to start . my txt file looks... (10 Replies)
Discussion started by: Roggy
10 Replies

3. Shell Programming and Scripting

Adding a backslash in front of square brackets with sed

I'm trying to convert this line: to \ with sed. This is what I have so far: sed -e 's/\]*\)\]/\\\\\/' but this still gives me . Any suggestions? (15 Replies)
Discussion started by: lehaste
15 Replies

4. Shell Programming and Scripting

Simple script for adding users

Hi guys, I've a simple linux script (made by my friend), which adds users to the system from userlist file. it also creates user home dir and copies certain files to the directory. To be honest, am a newbie in scripting so am unable to fully understand how the script is working. unfortunately,... (30 Replies)
Discussion started by: vish6251
30 Replies

5. AIX

adding users via smit

I apologize if this is a simple/stupid question. When I add users in smit as root, many(most) of the fields are automatically popluated with some basic default values. Some other admins here have access to create users via sudo, however when they create users (sudo smit users), the user gets... (3 Replies)
Discussion started by: mshilling
3 Replies

6. UNIX for Dummies Questions & Answers

Adding users question

Hello there, I want to add new users to my system, so, being logged in as root I do useradd -m user_name, and the new user is added to the system. The problem is that it has more privileges than I expected. If I do su user_name then I am allowed to do cat /etc/passwd , so it is... (4 Replies)
Discussion started by: help.goes.here
4 Replies

7. Shell Programming and Scripting

Adding delimiter to logged in users

Hi guys! Just was wanting to run a command that would allow me to seperate the currently logged in users. Basically from this format: user1 user2 user3 To: user1|user2|user3 (Note the lack of a pipe at the end, not sure if thats possible) Basically it needs to be in this... (11 Replies)
Discussion started by: crawf
11 Replies

8. Programming

reg adding Users into at.allow and removing from at.allow

Hi , Thanks for your time . I am working on a application , which adds unix user through useradd and deletes user through userdel . both are admin commands . My requirement is i have to add a user into at.allow whenver a unix user is added through my application and the user should be... (4 Replies)
Discussion started by: naren_chella
4 Replies

9. UNIX for Dummies Questions & Answers

Adding users to /etc/group

I'm using SAM to add users on an HP and they're adding fine. But in /etc/group it only lists the group names. It's not adding the users in there. Is there a way to have them put in there without going into SAM and modifying the group and adding them? I guess what I want to happen is when I add... (1 Reply)
Discussion started by: golfhakker
1 Replies

10. Shell Programming and Scripting

Adding users

Anyone have a simple shell script that will prompt and accept screen input for each field that is required in the /etc/passwd file? (3 Replies)
Discussion started by: Relykk
3 Replies
Login or Register to Ask a Question