This demo program might help you to your solution:
Output:
Hi Chubler_XL,
Your example works fine for the example you've chosen, but, as mattz40 mentioned in post #4 in this thread, it won't work if one or more of the filenames in the lists in the expansions of $dir1 and $dir2 contain a <space> character.
Hi mattz40,
Maybe you would want to try something more like:
Note that the comment line in your sample code:
has been modified because this code does care about case in filenames. You can modify the code if you want to allow case-insensitive matches, but that is not the way normal UNIX/Linux/BSD filesystems work.
If the directory /mnt/nas/source contains the files:
and the directory /mnt/nas/target contains the files:
then the above code will produce the output:
Note also that the dir1 and dir2 variables now contain the full pathnames of the source and target directories; not lists of words contained in filenames in those directories. The Path1 and Path2 variables contain absolute pathnames of a file in the source and target directories, respectively and the File1 variable contains the filename of the last component of the pathname in the expansion of $Path1.
Note that bakunin gave an excellent explanation of what was wrong in your if [ ... ] expression. But I have to disagree with one point. The standard test expression and [ expression ] string equality operator is a single <equals-sign>, not the double <equals-sign> that is used in the C Language. Some shells will accept both, some shells will give you a syntax error is you use the double <equals-sign>, and some manual pages for some shells will say that the single <equals-sign> form is deprecated, but that is not what the shell standards say. I don't know of any shells that do not accept the single <equals-sign> form that is required by the standards.
(Some shells also have a [[ expression ]] in which [[ is a shell keyword; not the name of utility used to evaluate expressions. In the shells that understand [[ expression ]], the string equality operator in expression in this form is the double <equals-sign> in all shells that I've used. And some shells accept a single <equal-sign> operator in this form with a similar, but not always identical, meaning.)
Last edited by Don Cragun; 11-28-2018 at 02:56 AM..
Reason: Fix typo: s,!/bin/bash,#!/bin/bash,
These 2 Users Gave Thanks to Don Cragun For This Post:
Greetings -
I am a newbie in shell scripts. I have been thru the whole forum but there has been no similar query posed.
The objective of my system is to have a unified filebase system. I am using RSync to synchronise files between the location & central server with both of them having the... (4 Replies)
I would like to know how to compare a listing of directories that begin with the same four numbers ie.
/1234cat
/1234tree
/1234fish
and move all these directories into one directory
Thanks in advance (2 Replies)
ok i asked around to a few ppl and they said to use sed or awk to do what i want.. but i cant figure out how to use it like that..
anyway i have a text file that is 10k lines long.. i need to move text from the end of a line after the ? and move it to the front of the line then add a | after it.... (3 Replies)
I'm rather new to scripting, and despite my attempts at finding/writing a script to do what I need, I have not yet been successful.
I have a file named "list.txt" of arbitrary length with contents in the following format:
/home/user/Music/file1.mp3
/home/user/Music/file2.mp3... (21 Replies)
My input file is multiline file and I am writing a script to search for a pattern and move the line with the pattern and the next line to the end of the file. Since I am trying to learn awk, I thought I would try it.
My input looks like the following:
D #testpoint 1
510.0
D #testpoint2 ... (5 Replies)
Hello all.
I am new to this forum (and somewhat new to UNIX / LINUX - I started using ubuntu 1 year ago).:b:
I have the following problem that I have not been able to figure out how to take care of and I was wondering if anyone could help me out.:confused:
I have all of my music stored in... (7 Replies)
Hi there,
I am having trouble with a script I have written, which is designed to search through a directory for a header and payload file, retrieve a string from both filenames, compare this string and if it matches make a backup of the two files then move them to a different directory for... (1 Reply)
Hi,
Anybody help me to write a Shell Script
Get the latest file from the file list based on created and then move to the target directory.
Tried with the following script: got error.
A=$(ls -1dt $(find "cveit/local_ftp/reflash-parts" -type f -daystart -mtime -$dateoffset) | head... (2 Replies)
Hi
In directory /mnt/upload I have about 100 000 files (*.png) that have been created during the last six months. Now I need to move them to right folders. eg:
file created on 2014-10-10 move to directory /mnt/upload/20141010
file created on 2014-11-11 move to directory /mnt/upload/20141111... (6 Replies)
Shell script logic
Hi
I have 2 input files like with file 1 content as (file1)
"BRGTEST-242" a.txt "BRGTEST-240" a.txt "BRGTEST-219" e.txt
File 2 contents as fle(2)
"BRGTEST-244" a.txt "BRGTEST-244" b.txt "BRGTEST-231" c.txt "BRGTEST-231" d.txt "BRGTEST-221" e.txt
I want to get... (22 Replies)