Sponsored Content
Full Discussion: Text Substitution Project
Top Forums Shell Programming and Scripting Text Substitution Project Post 302467556 by methyl on Friday 29th of October 2010 08:41:23 PM
Old 10-29-2010
At first glance there are three fundamental problems here.

1) Using "for" for an open-ended list. A "while" loop is much more robust and will not exceed a maximum command length.
Code:
ls -1 /home/me/swift200/*.php 2>/dev/null | while read f
do

2) The 2400 line "run.sed" does not mention a filename anywhere and does not mention the value of "$f" (which would be $1 in this context).
This is why you are getting error messages.

3) If we could get "run.sed" to work, it would do 2,400 in-situ edits on 200 scripts (480,000 edits). Assuming a minimum script length of 2,400 lines we end up reading a minimum of 1,152,000,000 lines. This is somewhat inefficient.
Knowing the typical number of lines in each script would help the sizing.
Sometimes we can be inefficient and it really doesn't matter. With this task I think we need to look at efficiency.






Now! Unfortunately this is where I come unstuck because I do not have your Operating System (whatever that is) because I do not have a "-i" switch to "sed". I am unable to test a substantial edit list with your version of "sed". I have run "sed" with over 200 edit lines successfully.
From now on this is general untested advice.

1) Don't use "sed -i" unless you have an online copy of the scripts you are editing. One mistake and you will destroy the original.
There is no way that you will get this edit right first time.
Write one script to backup the original scripts and another script to do a quick restore and be prepared to run this restore again-and-again.

2) Use "sed -i -f sedfile name_of_file_to_be_edited"
It is possible to run sed ONCE per script to be edited. Try running "sed" with a sedfile containing 2400 individual sed command lines. Because the sedfile is a file which will be read by "sed" we do not need to protect characters from the Shell.
This User Gave Thanks to methyl For This Post:
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Update text files in place (string substitution) ??

The auditors have nailed us for world writeable files.... Apparently in years gone by, quite a number of our kornshell scripts have had: umask 000 put in the script. We have been able to turn off world writeable for existing dirs & files, but as these scripts run, new files keep getting... (1 Reply)
Discussion started by: kornshellmaven
1 Replies

2. Shell Programming and Scripting

text substitution

hi, in a text file i want to find the lines which contains A and B,and if these lines do not contain C and D. i want to substitute X with Y. how can i achive these? i tried with sed and awk, but couldnt succeed. (3 Replies)
Discussion started by: yakari
3 Replies

3. Solaris

SSH doesn't pick up user's project from /etc/project

We have a system running ssh. When a user logs in, they do not get the project they are assigned to (they run under "system"). I verify the project using the command "ps -e -o user,pid,ppid,args,project". If you do a "su - username", the user does get the project they are assigned to (and all... (2 Replies)
Discussion started by: kurgan
2 Replies

4. Shell Programming and Scripting

Difference between "Command substitution" and "Process substitution"

Hi, What is the actual difference between these two? Why the following code works for process substitution and fails for command substitution? while IFS= read -r line; do echo $line; done < <(cat file)executes successfully and display the contents of the file But, while IFS='\n' read -r... (3 Replies)
Discussion started by: royalibrahim
3 Replies

5. Shell Programming and Scripting

Text substitution & getting file name from url

hi, sorry if this seems trivial. i have a file url.txt which consists of a list of urls (it was supposed to be my wget -i file). however, since the server from which i am trying to download uses redirect, wget dows not remeber the filename of ther original url will save to a file name which is... (3 Replies)
Discussion started by: texttoolong
3 Replies

6. Solaris

what is the use of /etc/project file and project administration commands?

i have two doubts.. 1. what is the use /etc/project file. i renamed this file and when i tried to switch user or login with some user account the login was happening slowly. but when i renamed it to original name it was working fine... why so? 2. unix already has useradd and grouadd for... (4 Replies)
Discussion started by: chidori
4 Replies

7. Shell Programming and Scripting

Linguistic project: extract co-occurrences from text corpus

Hello guys, I've got a big corpus (a huge text file in which words are separated by one or several spaces). I would like to know if there is a simple way - using awk for instance - to extract any co-occurrence appearing at least 3times through the whole corpus for a given word. By co-occurrence,... (7 Replies)
Discussion started by: bobylapointe
7 Replies

8. News, Links, Events and Announcements

A new project was posted on The UNIX and Linux Forums project board.

A new project was posted on your project board. Project title: Bash Shell Tutoring Estimated Budget: $50/hr Start date: Immediately Required skills: Linux, Bash, Shell, UNIX I work as a datawarehouse designer and developer. Although I usually stick to the role of an analyst,... (0 Replies)
Discussion started by: Neo
0 Replies

9. Shell Programming and Scripting

FINDING DUPLICATE PROJECT ( directory project )

I have a project tree like that. after running find command with the -no -empty option, i am able to have a list of non empty directory DO_MY_SEARCH="find . -type d -not -empty -print0" MY_EXCLUDE_DIR1=" -e NOT_IN_USE -e RTMAP -e NOT_USEFULL " echo " " > $MY_TEMP_RESULT_1 while... (2 Replies)
Discussion started by: jcdole
2 Replies
Purple(3)						User Contributed Perl Documentation						 Purple(3)

NAME
Purple - Perl extension to the libpurple instant messenger library. SYNOPSIS
use Purple; ABSTRACT
This module provides the interface for using perl scripts as plugins in libpurple. DESCRIPTION
This module provides the interface for using perl scripts as plugins in Purple. With this, developers can write perl scripts that can be loaded in Purple as plugins. The scripts can interact with IMs, chats, accounts, the buddy list, libpurple signals, and more. The API for the perl interface is very similar to that of the Purple C API, which can be viewed at http://developer.pidgin.im/doxygen/ or in the header files in the Purple source tree. FUNCTIONS
@accounts = Purple::accounts Returns a list of all accounts, online or offline. @chats = Purple::chats Returns a list of all chats currently open. @connections = Purple::connections Returns a list of all active connections. @conversations = Purple::conversations Returns a list of all conversations, both IM and chat, currently open. @conv_windows = Purple::conv_windows Returns a list of all conversation windows currently open. @ims = Purple::ims Returns a list of all instant messages currently open. SEE ALSO
Purple C API documentation - http://developer.pidgin.im/doxygen/ Purple website - http://pidgin.im/ AUTHOR
Christian Hammond, <chipx86@gnupdate.org> COPYRIGHT AND LICENSE
Copyright 2003 by Christian Hammond This library is free software; you can redistribute it and/or modify it under the terms of the General Public License (GPL). For more information, see http://www.fsf.org/licenses/gpl.txt perl v5.12.1 2010-02-16 Purple(3)
All times are GMT -4. The time now is 02:41 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy