I was wondering if it is possible to execute a script that will remove a certain search pattern from a file and save it?
Manually I would just hit escape to enter command mode then search and delete the pattern "./srv 135.0.0.1.11111 210;=1" then save & exit the file
vi command to search and delete indicated pattern: :%s!"./srv 135.0.0.1.11111 210;=1"!!g
I dont have a clue how to do this using a script. Any ideas?
Any vi command that starts with a : is really an ex command. Any time the shell and vi command sequence:
will make the changes you want to make to file, you can put it into a script as:
so in this case:
should do what you want.
Dear All
I have a file called sample.txt which contains as follows
HR Files records Loaded RecordDate Unloaded
-- ---- -------- --------- ------------ ------
00 567 77777 67896 0 0
01 345 345567 45678 0 ... (1 Reply)
Hello,
How would i go about editing a file using VI within a shell script please?
Basically, i want to open a file, clear it's contents and save the file.
I found this on the web using "ex" but can't seem to get it to work:
ex /home/oconnor/TOOLS/UNIXCMDS/test_ex <<eof_ex
dd /*i put... (2 Replies)
Hi,
sample file looks like this..
<hp>
<name>
<detail>adsg</detail>
...
...
</name><ft>4264</ft>
</hp>
I need to edit the last but one line. I want the format to be ..
<hp>
<name>
<detail>adsg</detail>
...
...
</name> (3 Replies)
Hi
I am new to this Scripting process and would like to know How can i write a ksh script that will call other ksh scripts and write the output to a file and/or email.
For example
-------
Script ABC
-------
a.ksh
b.ksh
c.ksh
I need to call all three scripts execute them and... (2 Replies)
Hi all,
I need help in writing a script to edit a file
Here is the sample of my file
abc xxx 123
456
789
045
def yyy 987
678
098
cdf zzz 435
543
jhg vvv 987
765 (2 Replies)
hi all
i have a problem i want to edit a file without use the "vi" .
for example i want to edit a passwd file without to do "vi" in file.
how i can to do this?
Regards (4 Replies)
i have a file called number which contains data as
1 2 3 4 5
6 7 8 9 0
9 8 7 6 5
4 3 2 1 0
0 1 2 3 4
needed a shell script to print the output as
1
7
7
1
4
and (2 Replies)
hi, could someone share a short script that would process a .txt file and do the following, for example the text file has this form
0:1.0 1:1.0 2:2.0 3:3.0 4:4.0 5:5.0 6:6.0 7:7.0 8:8.0 ... {newline}
9:9.0 10:10.0 11:11.0 12:12.0 13:13.0 14:14.0 15:15.0 16:16.0 17:17.0 ... {newline}
and I... (3 Replies)
I'm trying to create a ksh script that will ask the user for the port number. $PORT1 is the variable I want to use that will contain whatever numbers the user inputs. The script would edit ports.txt file, search and delete "./serv 110.1.0.1.$PORT1 200;=3" .
So if the user types 50243 then the... (5 Replies)
i wrote script for if file exists script do file edit problem with the script get stuck not existing as for exit i mentioned exit 0 , and how to give the exception for script it should add
./script -- add hi
./script --add "hi how are you"
now below script with case it is working for... (0 Replies)
Discussion started by: markjohn1
0 Replies
LEARN ABOUT CENTOS
shell-quote
SHELL-QUOTE(1) User Contributed Perl Documentation SHELL-QUOTE(1)NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS --debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.16.3 2010-06-11 SHELL-QUOTE(1)