Sponsored Content
Top Forums UNIX for Dummies Questions & Answers How to read files with spaces Post 302422474 by Franklin52 on Tuesday 18th of May 2010 01:57:05 PM
Old 05-18-2010
Quote:
Originally Posted by Lillyt
Hi

I am a newbie to unix. I have a current script that reads a directory for excel files and renames the files. There is a problem now because some of the files have spaces. If I put quotes on the file, it will work but I dont know how to read all the files with quotes.

Variables
$1 = /data/
$2 = xls
$3 = AAA
$4 = /data/

filenames are :

report 1 and 1a.xls (this doesnt work)
report2_1.xls (this works, renames AAAreport2_1.xls)
Code:
for fname in $1/*.$2 ; do
    newname=`eval basename $fname`
    newfile=$3$newname
    echo "newfile is " $newfile
    if test -f $fname ;  then
        mv $fname $4/$newfile
    fi
done

If anyone can help, that would be great.

Thanks.
Lilly
Use quotes and a while loop like:
Code:
while read fname ; do
    newname=${fname##*/}  # no need to use external command
    newfile="$3""$newname"
    echo "newfile is " "$newfile"
    if [ -f "$fname" ];  then
        mv "$fname" "$4""$newfile"
    fi
done < $1/*.$2

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Keep spaces with read command

Hi The following command read a string from the keyboard & echo it back. $ read S;echo "$S" ABCD ABCD As you see, the input has space. while it echo back the spaces are removed. Is there a way to keep the input intact and not removing any spaces? Also, the number of spaces may vary. ... (3 Replies)
Discussion started by: azmathshaikh
3 Replies

2. Shell Programming and Scripting

Read files including spaces

I am accessing two files. I am using read command to read from the files. For the first file, I need read the fields delimited by spaces, and for the other file, I need to read the whole line as a single field including the spaces. When I used read command for the second file, the spaces... (4 Replies)
Discussion started by: kumariak
4 Replies

3. Shell Programming and Scripting

How to read a line when it starts with spaces

Hi , I use read command to get the input text, When i try to get the line starting with spaces or ending with spaces it automatically truncates the spaces and displays the remaining content. Code i tried (UserInput.sh): #!/bin/bash echo -n "Enter some text > " read text echo "You... (3 Replies)
Discussion started by: PrakashChinna
3 Replies

4. Shell Programming and Scripting

ksh - read file with leading spaces

Hi, Could someone has any suggestions on this? When read a line from a file, I need to check the first char in the line, it could be a space or any char. But the leading spaces are removed by read. Thanks. (2 Replies)
Discussion started by: momi
2 Replies

5. Shell Programming and Scripting

Read variables contain spaces from text file

Dears, I developed a shell script to read varibales from text file as the following: cat /dev/null > /rename-OUT.txt while read line do set -- `echo $line` snmpset -c dslmibs $1 sysName.0 octetstring $2 after=$(snmpget -c dslmibs $1 sysName.0 | cut -d: -f3) echo "$1,$2,$after" >>... (1 Reply)
Discussion started by: ahmed.zaher
1 Replies

6. Shell Programming and Scripting

(g)awk how to preseve white spaces (FS characters) or read a right subpart of $0?

Hi, I am using gawk (--posix) for extracting some information from something like the following lines (in a text file): sms_snath_hp_C/CORE BUILD PREREQUISITE: total 1556 drwxrwxrwx 2 sn sn 4096 2008-06-27 08:31 ./ drwxrwxrwx 13 sn sn 4096 2009-07-22 14:48 ../ -rwxrwxrwx 1 sn sn ... (14 Replies)
Discussion started by: shri_nath
14 Replies

7. Shell Programming and Scripting

Read file line spaces

I have a script which read a file it does while read -r line, then i echo line out echo "$line" Problem is the echo does not echo space and tabs at the end of each line. How do i get the end of line space as well (6 Replies)
Discussion started by: kelseyh
6 Replies

8. Shell Programming and Scripting

how to read blank spaces

hi i have a file which store some data.the contents of my file is data1:data2 data3:data4 i have a script which read this file correct="$(cat /root/sh | cut -d: -f1)" i used this syntax..please help me which syntax is used to read blank spaces.and then remove it and after that how to read... (1 Reply)
Discussion started by: shubhig15
1 Replies

9. Shell Programming and Scripting

Having a for loop read in lines with spaces?

Is this possible? I have a for loop in a shell script reading a list, but I want each line to be a loop, not each thing with a space. Here is the example: HOSTLIST="\ 1.2.3.4 serverA 1.2.3.5 serverB" for NBUHOST in `echo $HOSTLIST` do ssh ${SERVERNAME} "echo "${NBUHOST}"... (3 Replies)
Discussion started by: LordJezoX
3 Replies

10. Shell Programming and Scripting

Bash - read white spaces

Hello! I have one problem with my bash script - I would like to be able to read white space characters from stdin (for example single " ") - can I acomplish that somehow? I need to read only one character at the time, so I use read -s -n 1 var but it doesn't work for whitespaces apparently. ... (3 Replies)
Discussion started by: xqwzts
3 Replies
CP(1)							      General Commands Manual							     CP(1)

NAME
cp, cpdir - file copy SYNOPSIS
cp [-pifsmrRvx] file1 file2 cp [-pifsrRvx] file ... directory cpdir [-ifvx] file1 file2 OPTIONS
-p Preserve full mode, uid, gid and times -i Ask before removing existing file -f Forced remove existing file -s Make similar, copy some attributes -m Merge trees, disable the into-a-directory trick -r Copy directory trees with link structure, etc. intact -R Copy directory trees and treat special files as ordinary -v Display what cp is doing -x Do not cross device boundaries EXAMPLES
cp oldfile newfile # Copy oldfile to newfile cp -R dir1 dir2 # Copy a directory tree DESCRIPTION
Cp copies one file to another, or copies one or more files to a directory. Special files are normally opened and read, unless -r is used. -r also copies the link structure, something -R doesn't care about. The -s option differs from -p that it only copies the times if the target file already exists. A normal copy only copies the mode of the file, with the file creation mask applied. Set-uid bits are cleared if the owner cannot be set. (The -s flag does not patronize you by clearing bits. Alas -s and -r are nonstandard.) Cpdir is a convenient synonym for cp -psmr to make a precise copy of a directory tree. SEE ALSO
cat(1), mkdir(1), rmdir(1), ln(1), rm(1). CP(1)
All times are GMT -4. The time now is 08:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy