Hi Don, I truly appreciate your help.
Here is the script I changed and have placed "$file" everywhere it was.
Script is working fine upto line 13 (where grep command is redirecting to newtemp.csv file (with a bug that it will do it for the first file and second file remains untouched after it was moved to the ASPRODUCTSUMMARY subfolder.
Also giving syntax error at line 15 where there is
.
I changed everything as you suggested. I am attaching some sample files that this script is processing.
below is the latest script output error :
Error on line 12 newtemp.csv is rather processing correctly for 1 out of 2 files, and didn't process the second file and left it as it is. then gives error
And final error on line 15 :
.
Thank you very much
You didn't make all of the changes I suggested and you made some changes I didn't suggest. Let's analyze the commands being run inside the for loop. (I've removed the semicolons and split the commands onto separate lines to make it easier to read.) With the reformatting, you have:
Since you have $(...) around both of these commands, the shell executes the grep (which succeeded the first time) and then tried to execute the output produced by the grep. I assume this gave you the first command not found error.
Then the mv command executes producing output that looks something like
Quote:
newtemp.csv -> some_other_file_name
and then tries to execute that string (which I assume gave you a
Quote:
newtemp.csv not found
error message.) Remove the $( and the matching ) from both of these commands and you should make some progress.
Then you have a for loop starting with:
this executes the loop nine times for every file found in the directory. The first time through the loop, $file will be something like -rw-r--r--; the second time through the loop, $file will be the number of links to the file; ...; and the ninth time through the loop for each file, $file will be set to the name of a file. I had suggested that you change your original '$(ls -l $FOLDERDIR)' to '$(ls)'. I made a mistake leaving in the single quotes (and you corrected that. Thank you. But leaving $(ls -l) instead of $(ls) gives you a big problem.
Then in the final while loop you have another mv -v command inside $(...) which I assume is giving you several more command not found errors. Get rid of the $( and the matching ) again here.
Please also reformat this. It has been noted (and you agreed) that this code is a disaster. It looks like you are trying to minimize the number of lines of code in your script instead of trying to make it easy to understand. This may make sense when you have a simple program that can be written as a single line; but in a case like this it just makes your script unreadable. Don't you agree that:
is a lot easier to read and understand than:
The code above is an exaggeration of the formatting you're using, but not by much.
There are some problems that will arise even with this if any of the file names encountered while running ls contain any spaces, tabs, or newlines. I will assume for now that these directories are always being updated programmatically and that other users don't have permission to create any files in these directories.
This User Gave Thanks to Don Cragun For This Post:
i have following statement in the script
echo -e "$str_XML_col_name:$str_field_type;" >> $i_DC_Key_$i_Tgt_DC_key_Schema
here $i_DC_Key is DC key and $i_Tgt_DC_key are the variables...............
when i ran the script i am getting error rec_merge.sh: $i_DC_Key_$i_Tgt_DC_key_Schema:... (1 Reply)
Hi everyone, While I was trying to do
DATE=`date +"%Y%m%d_%H%M%S"`
STARTLOG=$TUXSTDDIR/start_$DATE.log
tmboot -y > $STARTLOG 2>&1
I got an error i.e. Ambiguous output redirect error. Here the first part is to boot the account so there is nothing wrong with that.... (6 Replies)
I am trying to run the following script and I am getting an "ambiguous redirect" error. I have checked to make sure that the files are all where I have specified and are read/write as needed. Any ideas?
Note: I have removed the actual path info for privacy sake. I have triple checked to make... (1 Reply)
Hello there,
I'm totally new in bash programming and ran into my first problem.
My script should generate 3 textfiles where the content of the first and the third row are the same in each file. Only the second row is different.
This is what I did in a very simplified explanation:
... (6 Replies)
This script has ambiguous redirect error.
...
cd $HOME
cd folder/work
# search all subfolders in work directory
find -mindepth 1 -maxdepth 1 -type d | while read directory
do
CUR_FOLDER="${directory#"./"}"
cd $CUR_FOLDER
chmod 644 *
for ff in *; do
if ; then
... (5 Replies)
I came across the command string on https://www.unix.com/shell-programming-scripting/141885-awk-removing-data-before-after-pattern.html which was what I was looking for to be able to remove data before a certain pattern. However, outputting the result to a file seems to work on an individual basis... (4 Replies)
Hello everybody,
I just took over this job from someone else and in the past this script they built worked but i recently upgraded from openSuSe 11.4 to 12.1
Now when i run the script i get an ambiguous error at line 25 (the first line after add() )
I have edited out the webpath and any... (1 Reply)
Hi all,
I've been working on a bash script to help with backups that I have to do at work.
One of the lines in the script is supposed to launch an xterm, log into a specific server node and launch a tar backup to tape. This part works ok, but I've been trying to get stdout and stderr to... (2 Replies)
New to the site, please let me know I'm not meeting the post guidelines.
I'm creating a bash script to generate a report with output from a grep command. The goal is to direct
the output to a different log file by using a 'logger file'. But I get this error during the run: $1: ambiguous... (5 Replies)