Create simple script


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Create simple script
# 1  
Create simple script

Dear all,

I have a directory named A and some subdirectories named B, C, D with .xml files. I want to use the following command to strip the file.
Code:
sed -re ':start s/<[^>]*>//g; /</ {N; b start}' file.xml > file.xml

At the same time, I want to remove the blank lines using
Code:
sed '/^$/d'

How can I create a simple script for all files?
# 2  
Quote:
Originally Posted by corfuitl
Dear all,

I have a directory named A and some subdirectories named B, C, D with .xml files. I want to use the following command to strip the file.
Code:
sed -re ':start s/<[^>]*>//g; /</ {N; b start}' file.xml > file.xml

Doesn't work that way. You shouldn't write to the same file you're reading, you'll truncate it.

Quote:
At the same time, I want to remove the blank lines using
Code:
sed '/^$/d'

How can I create a simple script for all files?
If your sed's work, then:

Code:
for FILE in *.xml
do
        sed -re ':start s/<[^>]*>//g; /</ {N; b start}' "$FILE" > /tmp/$$
        sed '/^$/d' < /tmp/$$ > "$FILE".new
done

rm -f /tmp/$$

Remove the '.new' once you've tested it and are sure it does what you want. It's all too easy to destroy your originals by accident when you edit them automatically.
# 3  
thank you. It works, but with some problems! The script removes the tags bat not the blank lines.

Could you tell me also how can I proccess the xml files in the subdirectories?
Thank you in advance.
# 4  
Quote:
Originally Posted by corfuitl
thank you. It works, but with some problems! The script removes the tags bat not the blank lines.
Are you sure they're actually blank? They could have a single space or something.

Quote:
Could you tell me also how can I proccess the xml files in the subdirectories?
Thank you in advance.
Code:
find . -iname '*.xml' | while read FILE
do
        sed -re ':start s/<[^>]*>//g; /</ {N; b start}' "$FILE" > /tmp/$$
        sed '/^[ \t]*$/d' < /tmp/$$ > "$FILE".new
done

# 5  
Thank you! It works! The lines seems to be empty, but when I am trying to open them with vi, there is ^M character. Do you know how can I remove it?
Thanks a lot for your help.
# 6  
Code:
find . -iname '*.xml' | while read FILE
do
        sed -re ':start s/<[^>]*>//g; /</ {N; b start}' "$FILE" > /tmp/$$
        tr -d '\r' | sed '/^[ \t]*$/d' < /tmp/$$ > "$FILE".new
done

# 7  
Thank you very much for your helping. I tried and it works! Could you tell me please how the new file can be created in a other location. For example, I have the main dir, called DIR1 with subdirs called EX1, EX2, A1, A2 ....The xml files are located in subdirs. This dir is on C drive. I want to create a new dir named DIR1 with the same stucture and only the new files in F drive.

Thank you in advance!
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #744
Difficulty: Medium
Clang is a compiler front end for the C, C++, Objective-C and Objective-C++ programming languages.
True or False?

10 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

Create a simple bash backup script of a file

This is the problem: Write a script that will make a backup of a file giving it a ‘.bak’ extension & verify that it works. I have tried a number of different scripts that haven't worked and I haven't seen anything really concise and to the point via google. For brevity's sake this is one of the... (4 Replies)
Discussion started by: demet8
4 Replies

2. UNIX and Linux Applications

Really simple shell script to create oracle database

Hello , I am new in this forum and need your help as I am totally confused :confused: I read a lot of threads and tried to search a lot but did not get the exact answer to my question. I just want a simple (content wise may be long) shell script to create oracle database. In detail:... (5 Replies)
Discussion started by: rahoolm
5 Replies

3. Shell Programming and Scripting

Help making simple perl or bash script to create a simple matrix

Hello all! This is my first post and I'm very new to programming. I would like help creating a simple perl or bash script that I will be using in my work as a junior bioinformatician. Essentially, I would like to take a tab-delimted or .csv text with 3 columns and write them to a "3D" matrix: ... (16 Replies)
Discussion started by: torchij
16 Replies

4. Shell Programming and Scripting

How to create a simple copy script?

Guys I want to do this: copy: /var/router/system1/config/backup/install.put /var/router/system2/config/backup/install.put /var/router/system3/config/backup/install.put /var/router/system4/config/backup/install.put into: /var/router/system1/config/install.dat... (22 Replies)
Discussion started by: DallasT
22 Replies

5. Shell Programming and Scripting

Need to create a simple script using MD5, SSH...

Hi all, I am brand new to these forums and I am a brand new UNIX Administartor. Don't know any scripting yet :wall:, and would like to learn as my boss is slowly letting me understand everything about being a Sys/*Nix Admin. He created this script which I am trying to replicate because I lost it... (54 Replies)
Discussion started by: zixzix01
54 Replies

6. Shell Programming and Scripting

How to create a simple shell script to backup

Hello - I am in process of deleting many files which are older than 4 weeks. For example I am inside: /subsystem/prod/ Files are with various extentions, but anything older than 4 weeks should be deleted. What would be the most simplest script to acheive this? (4 Replies)
Discussion started by: DallasT
4 Replies

7. Solaris

How to create a simple background script on Solaris

I have a local account for a unix server. The idle timeout for the account is around 10 mins. I have to login to the server multiple times during the day. Is there a way to increase the idle timeout or may be a script that I can run on background so it is not idle. Something like echo date every 9... (3 Replies)
Discussion started by: vinaysa
3 Replies

8. Shell Programming and Scripting

Simple Script to create folders

Hi I want to write a small script that will create folders named from `AAAA' all the way to `ZZZZ'. That is: `AAAA' `AAAB' `AAAC' ... `AABA' `AABB' `AABC' ... `ABAA' `ABAB' `ABAC' ... `ABBA' ... `ZZZZ' (4 Replies)
Discussion started by: ksk
4 Replies

9. Shell Programming and Scripting

Create A Simple GUI For Shell Script

Hi all! Im wondering if its possible to create a GUI for a shell script I just got done writing as the people that will be using it dont like the command line all to well. Just something simple with radio buttons to select options, maybe a text field to enter a location to save the file generated... (1 Reply)
Discussion started by: Grizzly
1 Replies

10. Shell Programming and Scripting

Modifying simple commands to create a script

Can anyone direct me to a resource that explains scripting in simple terms? I have visited many sites and browsed this forum and have yet to find simple explanations. (8 Replies)
Discussion started by: rocinante
8 Replies

Featured Tech Videos