Repeat command with new variable for each line in txt file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Repeat command with new variable for each line in txt file
# 22  
Old 05-28-2013
and data.
This User Gave Thanks to DGPickett For This Post:
# 23  
Old 05-29-2013
The code itself looks like this:
Code:
while read x 
do
  find /var/mobile/Applications -maxdepth 2 -name "$x" >> /var/mobile/z_renapps/"$x".sh
  sed -i "s|$x|iTunesMetadata.plist|g" /var/mobile/z_renapps/"$x".sh
  sed -i "s|/var|sudo cp /var|g" /var/mobile/z_renapps/"$x".sh
  echo "/Applications/RenApple.app/0Metadata/09240920.plist" >> /var/mobile/z_renapps/"$x".sh
  sed -i "s|09240920|$x|g" /var/mobile/z_renapps/"$x".sh
  sed -i ':a;N;$!ba;s/\n/\t/g' /var/mobile/z_renapps/"$x".sh
  sed -i "s|plist /|plist /|g" /var/mobile/z_renapps/"$x".sh
done < /Applications/RenApple.app/applist.txt

The lines in the text file (that is being read)
Quote:
line1
line2
....
line52
The problem is I KNOW that the last line is not processed, because even if the find command is not executed properly, there will still be the creation of the .sh file at least.
Due to that file missing I'm absolutely sure that this line was skipped/whatever.
# 24  
Old 05-29-2013
Just for the fun of it, please show us the output from the command:
Code:
tail -c10 /Applications/RenApple.app/applist.txt

With the results you're reporting, I'm guessing that the display for last three characters in the file will not be:
Code:
   5   2  \n

My guess is that that file is not a text file because the last character in it is not a <newline>.

The while read loop in current versions of both ksh and bash will not report reading an incomplete line.
# 25  
Old 05-30-2013
Try using'od' or 'cat vte' to view the file so you can see all characters and linefeeds. As each line is processed, something locks it up. A missing linefeed at EOF may mess up many text tools.
# 26  
Old 05-30-2013
You said in post #19 it stops AFTER 52 lines. So - what be line 53 in your data?
# 27  
Old 06-04-2013
Quote:
Originally Posted by DGPickett
Try using'od' or 'cat vte' to view the file so you can see all characters and linefeeds. As each line is processed, something locks it up. A missing linefeed at EOF may mess up many text tools.
It is always the last line that will be swallowed

For example, I should have exactly the same amount of .sh files created as I have lines (due to repeating the script as often as I have lines.

Is there no way to force the script to read all lines/check if they are correct beforehand.

The text file like I said looks like this:

Code:
LINE1
LINE2
...
...
LINE52
LINE53

I'm positive that there is no newline after the last entry.
However due to quite some amount of editors messing this up.
Is there a way to remove the newline before executing the command that repeats itself to make sure this is not the cause for the lock up ?

Thanks in advance as always !

Last edited by pasc; 06-04-2013 at 06:04 PM..
# 28  
Old 06-05-2013
Text files should, but often do not, end in a line-feed. The simplest solution is:
Code:
$ ( cat input_file ; echo ) | while read ....

You might need do loop code to reject empty lines in case there is a final linefeed.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Read in txt file and run a different command for each line

hi, i'm trying to write a tcsh script that reads in a text file (one column) and the runs a different command for each line of text. i've found lots of example commands for bash, but not for tcsh. can anyone give me a hint? thanks, jill (8 Replies)
Discussion started by: giuinha
8 Replies

2. UNIX for Dummies Questions & Answers

Split Every Line In Txt Into Separate Txt File, Named Same As The Line

Hi All Is there a way to export every line into new txt file where by the title of each txt output are same as the line ? I have this txt files containing names: Kandra Vanhooser Rhona Menefee Reynaldo Hutt Houston Rafferty Charmaine Lord Albertine Poucher Juana Maes Mitch Lobel... (2 Replies)
Discussion started by: Nexeu
2 Replies

3. Shell Programming and Scripting

Repeat for different variable

Hey, I've created following script: var1=test1 setA=testA if ... touch $setA/$var1 ... fi I would like now the repeat the command touch (in this example) for different variables. So below, the varX should run 3 times (var1, var2, var4). Var3 is skipped in this example... (4 Replies)
Discussion started by: brononius
4 Replies

4. Shell Programming and Scripting

Need to append the date | abcddate.txt to the first line of my txt file

I want to add/append the info in the following format to my.txt file. 20130702|abcd20130702.txt FN|SN|DOB I tried the below script but it throws me some exceptions. <#!/bin/sh dt = date '+%y%m%d'members; echo $dt+|+members+$dt; /usr/bin/awk -f BEGIN { FS="|"; OFS="|"; } { print... (6 Replies)
Discussion started by: harik1982
6 Replies

5. Shell Programming and Scripting

How to echo $variable into txt file?

Hello i tried many times echo $variables into text file with no success for example: echo "#!/bin/sh BBHTAG=RFOCLT_check # What we put in bb-hosts to trigger this test COLUMN=RFOCLT # Name of the column, often same as tag in bb-hosts $BBHOME/bin/bbhostgrep $BBHTAG | while read... (5 Replies)
Discussion started by: mogabr
5 Replies

6. Shell Programming and Scripting

assigning variable in txt file

Hi all, One of my txt file has common format like . And I need to manually assign variable to "/a/b/c/file1/txt" , which has common text before "Calculated summary file:". I wonder if I can use some command to do that for me, that it read the file and check for that comonn text and assign... (2 Replies)
Discussion started by: emily
2 Replies

7. UNIX for Dummies Questions & Answers

Command to delete numbers at beginning of txt file line

Hello. I have the following issue: my txt file has the following format: train/dr4/fklc0/sx175.txt 0 80282 Severe myopia contributed to Ron's inferiority complex. train/dr4/fklc0/sx355.txt 0 42906 Dolphins are intelligent marine mammals. train/dr4/fklc0/sa2.txt awk 'NR%2==0' test1.txt >... (4 Replies)
Discussion started by: li_bi
4 Replies

8. Shell Programming and Scripting

Insert a line including Variable & Carriage Return / sed command as Variable

I want to instert Category:XXXXX into the 2. line something like this should work, but I have somewhere the wrong sytanx. something with the linebreak goes wrong: sed "2i\\${n}Category:$cat\n" Sample: Titel Blahh Blahh abllk sdhsd sjdhf Blahh Blah Blahh Blahh Should look like... (2 Replies)
Discussion started by: lowmaster
2 Replies

9. Shell Programming and Scripting

Problems reiterating values from txt file into a variable

Hi, I have written a script to retrieve phone numbers from an error log and output the phone numbers into an text file. I then use the list of phone numbers to process each value into a variable so I can run a sql query and update the database. My problem is I can only process the first value... (2 Replies)
Discussion started by: rdr411
2 Replies

10. Shell Programming and Scripting

command to list .txt and .TXT file

Hi expersts, in my directory i have *.txt and *.TXT and *.TXT.log, *.txt.log I want list only .txt and .TXT files in one command... how to ?? //purple (1 Reply)
Discussion started by: thepurple
1 Replies
Login or Register to Ask a Question