Created a shell script to invoke sed to edit multiple files, but am missing something.
Here's the shell script:
The problem is in this line:
First, sed doesn't need a redirection because it can work on files. Notice that i quoted "$i" because otherwise files with blanks in their names would break your script. It is generally a good idea to religiously quote whatever is quotable in shell scripts - it just comes with the impulse to convert the infidels, like i am doing to you right now. ;-)
Second, sed puts it output to <stdout> as per default. Probably it did do the changes but they were shown on your screen, not your file. To make the changes lasting you need to redirect this output into a (new!) file and only then move that file over the old one. As an additional measure of caution only do so if sed returned 0. This guards against i.e. disk-full-conditions where the output cannot be written (fully) to the disk and you move then a corrupt script over a perfectly fine template:
I've got a bunch of files (40 or so) and in each there is a substitution I need to perform.
I execuet the following sed command but it just make the changes to the screen without affecting the original file.
sed "s/, LA/,LA/g" *
(All files in the directory need this update).
So I tried... (4 Replies)
Here's what I have...
$ vi foo1
- open foo1 and work around for a while. I yank a few lines into a buffer and then :w to save.
Next I :e foo2 to open foo2 and paste my buffer. I :w to save, but I would like to then be able to go directly back into foo1 where I was before I opened foo2. ... (4 Replies)
i have a command like :
sed -n 's/^* /&/w even' <file
if i want to write to multiple files like
sed -n 's/^* /&/w zero two three' < file
its not working it is taking "zero two three" as a single file i want to write to 3 seperate files . pls can anyone help me (2 Replies)
Hi,
I want to do a search and replace on multiple text files. Can I use sed to do this?
i.e. I want to do something like:
$ sed *.html -e 's/<\/body>/<\!-- blah -->\n<\/body>/' | grep -1 body
... then pipe/ channel the results back into the same files that were searched.
how would... (2 Replies)
Hello all,
Search & replace works fine using sed on a single file.
Ex:
sed -i 's/day/night/g' test1.sh
There are many *.sh files in my current directory that I would like use sed on. I tried running the sed command using wild card but it did not work.
sed -i 's/day/night/g' *.sh
... (7 Replies)
Hi all,
I would like to simply read a file which lists a number of pathnames and files, then search and replace key strings using a few vi commands:
:1,$s/search_str/replace_str/g<return>
but I am not sure how to automate the <return> of these vis commands when I am putting this in a... (8 Replies)
Hi guys,
say I have a few files in a directory (58 text files or somthing)
each one contains mulitple strings that I wish to replace with other strings
so in these 58 files I'm looking for say the following strings:
JAM (replace with BUTTER)
BREAD (replace with CRACKER)
SCOOP (replace... (19 Replies)
What is the syntax to use multiple input files in a SED command. i.e. substitute a word with a phrase in every file in a directory.
for every file in /usr/include that has the word "date" in the file
grep -l '\<date\>' /usr/include/*.h
find each occurrence of the word "time" in the file &... (3 Replies)
I have 6 different pipe delimiter files. My loads failing due to missing company code.
File1: 31 st field is company code.
402660076310|2014-12-10 17:22:39|2280361|MRYKI|1||CA|92507|US||1|1|0|0|0||N|A1|ONT|1001891771660009250700402660076310|WM|0201|RALA |2014-12-12|5|2014-12-12|5||FRI - 12... (4 Replies)
I have 4000 files like
$cat clus_grp_seq10_g.phy
18 1002
anig_OJJ65951_1 ATGGTTTCGCAGCGTGATAGAGAATTGTTTAGGGATGATATTCGCTCGCGAGGAACGAAGCTCAATGCTGCCGAGCGCGAGAGTCTGCTAAGGCCATATCTGCCAGATCCGTCTGACCTTCCACGCAGGCCACTTCAGCGGCGCAAGAAGGTTCCTCG
aver_OOF92921_1 ... (1 Reply)
Discussion started by: sammy777888
1 Replies
LEARN ABOUT SUSE
xmlstarlet
XMLSTARLET(1) xmlstarlet Manual XMLSTARLET(1)NAME
xmlstarlet - command line XML/XSLT toolkit
SYNOPSIS
xmlstarlet [<options>] [<command>] [<cmd-options>]
INTRODUCTION
XMLStarlet is a set of command line utilities (tools) which can be used to transform, query, validate, and edit XML documents and files us-
ing simple set of shell commands in similar way it is done for plain text files using UNIX grep, sed, awk, diff, patch, join, etc commands.
This set of command line utilities can be used by those who deal with many XML documents on UNIX shell command prompt as well as for auto-
mated XML processing with shell scripts.
OPTIONS --version
Display the version of xmlstarlet.
--help Display help.
COMMANDS
Type: xml <command> --help <ENTER> for command help
Available commands include:
ed (or edit)
Edit/update XML document(s).
sel (or select)
Select data or query XML document(s) (XPATH, etc).
tr (or transform)
Transform XML documents(s) using XSLT.
val (or validate)
Validate XML document(s) (well-formed/DTD/XSD/RelaxNG).
fo (or format)
Format XML document(s).
el (or elements)
Display element structure of XML document.
c14n (or canonic)
XML canonicalization.
ls (or list)
List directory as XML.
esc (or escape)
Escape special XML characters.
unesc (or unescape)
Unescape special XML characters.
pyx (or xmln)
Convert XML into PYX format (based on ESIS - ISO 8879).
p2x (or depyx)
Convert PYX into XML.
REFERENCES
XMLStarlet is a command line toolkit to query/edit/check/transform XML documents (for more information see http://xmlstar.source-
forge.net/).
AUTHOR
Mikhail Grushinskiy.
XMLSTARLET(1)