Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Copying files with spaces in the filename in a for loop Post 302597447 by Scrutinizer on Friday 10th of February 2012 10:38:35 AM
Old 02-10-2012
The trouble is grep -Eo '[0-9]{3,4} wil also match the numbers after the /
This can also be done with plain shell:

Code:
while IFS="-/" read x cam x
do
  while read file
  do 
    case $file in
       *$cam*) cp "$file" cameras
    esac
  done < list3
done < list2

But this reads list3 multiple times. This would be more efficient for example:

Code:
while IFS="-/" read x cam x
do
  cameras="$cameras $cam"
done < list2

while read file
do 
  for cam in $cameras
  do
    case $file in
      *$cam*) cp "$file" cameras
    esac
  done
done < list3


Last edited by Scrutinizer; 02-10-2012 at 11:45 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

moving files with spaces in filename from one directory to another

Hello, When I run following script #!/bin/bash cd ~/directory1 mv `ls -trF | grep -v / | tail -10 ` ~/directory2 works fine with filenames not having any space but runs into issues with filenames that have spaces tried with $file variable still doesnot work. Can someone help me (4 Replies)
Discussion started by: asakhare
4 Replies

2. Shell Programming and Scripting

copying files with spaces in the filename

Hi I am having difficulty copying files from one dir to another due to a space in the names of the file with an extension .rtf There are a group of files and the command am using is cp `ls -rt /wlblive/home/whiops/ops/RTFs/*.rtf|head -20` /wlblive/home/jamshed Since the files are... (3 Replies)
Discussion started by: jamshedj
3 Replies

3. Shell Programming and Scripting

List files with spaces in filename

I have a text file containing files in a directory structure i.e. /project/hr/raw/jcpdatav/datav_aug03 /project/hr/raw/jcpdatav/comb8121sep02n /project/hr/raw/jcpdatav/datav_feb04_ons /project/hr/raw/jcpdatav/corpsick_jun06 /project/hr/raw/jcpdatav/jcpjoiners200507... (3 Replies)
Discussion started by: mr_crosby
3 Replies

4. Shell Programming and Scripting

Copying files using $filename

Hi, I've a problem. Here is the code: #!/bin/ksh echo "enter a file name" read a cd /home/linux1/sam if then echo "file exists" cp $a $a_bkp else echo "file doesn't exist" fi when executed the o/p is: enter a file name contact file exists cp: missing destination file (4 Replies)
Discussion started by: sam_bd
4 Replies

5. Shell Programming and Scripting

Rename all files (filename with spaces) to different extension

Hi, I have files with filenames as below. SGM Daily Sales Email-en-us-05312012.xlwa I want to rename it in .xls. I am writing a script to change this, as there can be multiple files in subfolders. I have the following script. #!/bin/ksh for oldfile in $(find... (1 Reply)
Discussion started by: mac4rfree
1 Replies

6. Solaris

While copying files from windows to Solaris5.8 with filezilla length of the filename changed

Hello I am copying a tar from windows7 to Solaris with filezilla i could see, some characters in the name of the file get deleted. I could see only substring of the filename eg: original filename :abcdefghijklmnopqrstu.h i can see like abcdefghijklm solution to this problem is highly... (2 Replies)
Discussion started by: Revathi R
2 Replies

7. Shell Programming and Scripting

Issue with copying files into dir inside for loop

Hi , I'm trying to move/copy the files inside the loop into a directory . I tried the below code and the issue is the data is not copying into the created directory but the files are copying into another file file_path="/home/etc" Last_Day=20130930 mkdir $file_path/ARC_${Last_Day} ... (3 Replies)
Discussion started by: smile689
3 Replies

8. Shell Programming and Scripting

Creating Multiple data files with spaces in the filename

Hi, I have a list of filenames in the format with Spaces in the filename. As an example : Sample File 1.txt Sample File 2.txt Sample File 3.txt.....I have about 100 files like this. I am trying to create a block of code or use an available command to a) Create a file b) Put in some... (2 Replies)
Discussion started by: ban3rj33
2 Replies

9. Shell Programming and Scripting

Process files in loop which have spaces in name

I have a folder with files and I have to process them in a loop. However the filenames have space characters, so the list get split. $ touch "File Number_1" $ touch "File Number_2" $ ls "/tmp/File Number"_* /tmp/File Number_1 /tmp/File Number_2 I tried following (sorry for using the... (3 Replies)
Discussion started by: Wernfried
3 Replies

10. Shell Programming and Scripting

Loop Script and not opening files containing spaces

Hello, I wrote a simple script, that basically wait for a *.dat-file in a certain folder, which is always a zipped file and extracts it. It worked before and i changed nothing in the script, but since last week i have the problem, that it doesnt extract files containing a space. How do i make... (4 Replies)
Discussion started by: blend_in
4 Replies
pgrep(1)						      General Commands Manual							  pgrep(1)

NAME
pgrep, pkill - search or kill processes based on process name and attributes SYNOPSIS
dlim] etimelist] pgrplist] grouplist] ppidlist] prmgrplist] sidlist] statelist] termlist] userlist] ruserlist] vszlist] psetlist] [pattern] etimelist] pgrplist] grouplist] ppidlist] prmgrplist] sidlist] statelist] termlist] userlist] ruserlist] vszlist] psetlist] [pattern] DESCRIPTION
searches for processes having attributes matching the selection criteria specified by its arguments. The process ID numbers of the matched processes are printed, separated by a delimiter, the default being the newline. Each attribute option can take multiple values separated by comma. will select those processes that match all the attribute options specified. If an attribute option has multiple values, then the process needs to match one of the values. For example: matches processes having effective user ID OR AND real group ID OR selects processes similar to but instead of printing the process ID numbers, it signals the matched processes. The user can specify the signal to be sent to the matched process as the first argument to By default is assumed. Options The following options can be used to specify processes to be selected. Specifies the signal to be sent to each matched process If no signal is specified, is sent by default. The value of signal follows the same syntax as that of the command; see kill(1). This option, if specified, should be the first argument to Specifies the delimiter to be used while printing the matched entries only). The default delimiter is a newline. Selects processes whose elapsed time matches the time limits specified in timelist. This time limit can be specified as given below: which will be interpreted as elapsed time than time1 and than time2. If the argument is only time, then is assumed. The syntax for specifying time is: D:H:m:s for D days, H hours, m minutes and s seconds. If one of the fields is empty, then 0 is assumed for that field. For example: will be interpreted as elapsed time greater than 300 seconds, and will be interpreted as elapsed time (greater than 30 minutes and 10 seconds AND less than 2 days, specified by 'el'2) OR (greater than 3 days) OR (less than 10 seconds, specified by 'el'10). Perform pattern matching on the entire command line rather than the command name. Select processes whose real group ID numbers or group names are given in grouplist. Select processes whose process group ID numbers are given in pgrplist. Long listing only). Print the command name along with the PID. If used with the option, the command line argument is printed instead of command name. Select the most recently created process matching the criteria. This option is mutually exclusive with the option. Select the oldest process matching the criteria. This option is mutually exclusive with the option. Select processes whose parent process ID numbers are given in ppidlist. Select processes belonging to PRM process resource groups whose names or ID numbers are given in prmgrplist. See Selects processes whose current state is given in the statelist. The values for statelist can be: Running Sleeping Stopped Zombie Select processes whose session ID numbers are given in sidlist. Select processes associated with the terminals given in termlist. Terminal identifiers can be specified in one of two forms: o the device's file name (such as or o if the device's file name starts with just the rest of it (such as If the device's file is in a directory other than or the terminal identifier must include the name of the directory under that contains the device file (such as Select processes whose real user ID numbers or login names are given in ruserlist. Select processes whose real user ID numbers or login names are given in userlist. Reverse selection. Select processes that do not meet the matching criteria. Perform an exact match of the pattern string. Select processes whose processor set IDs are given in psetlist. Selects processes whose virtual size matches the size limits specified in sizelist. The syntax for specifying size limit is as given below: which will be interpreted as virtual size in kilobytes than lowerlimit and than upperlimit. If the argument is only limit then is assumed. Operands pattern Expression (ERE) pattern to match against either the basename or full process argument string. See regexp(5) for a complete description of the ERE syntax. EXTERNAL INFLUENCES
Environment Variables If is not specified or is null, it defaults to (see lang(5)). RETURN VALUE
and exits with one of the following values: One or more processes matched the criteria. No process matched the criteria. Syntax error in command line. Other errors EXAMPLES
Print PID of the cron daemon: Send signal to Print PIDs of telnet sessions that are active for more than 2 days: WARNINGS
Process information can change while or is running; the picture it gives is only a snapshot in time. With the option, and matches only up to the initial 1020 bytes of command line with the pattern string. and will not match itself. DEPENDENCIES
HP Process Resource Manager The option require the optional HP Process Resource Manager (PRM) software to be installed and configured. See prmconfig(1) for a descrip- tion of how to configure HP PRM, and prmconf(4) for the definition of If HP PRM is not installed and configured and is specified, or fails with error message. FILES
Directory of terminal device files. SEE ALSO
kill(1), ps(1), ptree(1). HP Process Resource Manager: prmconfig(1), prmconf(4) in pgrep(1)
All times are GMT -4. The time now is 03:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy