Visit Our UNIX and Linux User Community


Converting windows format file to unix format using script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Converting windows format file to unix format using script
# 1  
Old 12-20-2010
Error Converting windows format file to unix format using script

Hi,

I am having couple of files which i used to copy from windows to Linux, so now in case of text files (CTRL^M) appears at end of line. I know i can convert this windows format file to unix format file by running dos2unix.

My requirement here is that i want to do it automatically using a script i.e. on running a script it should convert all the text files present in a particular directory from windows format to unix format. Now the problem here is all the text files are not having *.txt, some files are present with different file extension but are still text files. So in case if my directory contains any zip file and i run this script blindly to run dos2unix on all the files present in directory, .zip file got corrupted.

So is there any way i can figure out that dos2unix should run only on text files and not on .zip or in other way any means of getting an information that particular file is a text file.

-Sarbjit
# 2  
Old 12-20-2010
You could do something like:
Code:
for file in *
do
  ext=${##.file}
  if [ $ext != "zip" ]
  then
    # do your stuff here
  fi
done

# 3  
Old 12-20-2010
Another way would be to use the file-command:
Code:
for f in *
do
   ft=$(file $f)
   if [ "$ft" = "$f: ASCII text" ]
   then
       # do your stuff here
   fi
done

# 4  
Old 12-20-2010
Quote:
copy from windows to Linux
If you are using "ftp" to copy text format files from Windows to Unix consider using "ascii" mode not "binary" mode. This will convert the files whether or not they have the ".txt" extension. Always check the process in a test environment because there can be quirks with foreign characrter sets.

If this is not your problem, please state how you are copying the files.
# 5  
Old 12-21-2010
Quote:
Originally Posted by methyl
If you are using "ftp" to copy text format files from Windows to Unix consider using "ascii" mode not "binary" mode. This will convert the files whether or not they have the ".txt" extension. Always check the process in a test environment because there can be quirks with foreign characrter sets.

If this is not your problem, please state how you are copying the files.

In my office environment we had our unix home / drives mapped through samba server and i directly open my unix drive like a normal windows drive and use standard windows copy/paste procedure while copying file from Windows to unix.
# 6  
Old 12-21-2010
Quote:
Originally Posted by cero
Another way would be to use the file-command:
Code:
for f in *
do
   ft=$(file $f)
   if [ "$ft" = "$f: ASCII text" ]
   then
       # do your stuff here
   fi
done

Agreed using file is a good option, but be carefull as the output of file is pretty system specific and you code may not work on another OS or updated version of your OS.

On my OS DOS format files are reported by file as:
Code:
test: ASCII text, with CRLF line terminators

While unix formatted files are reported as:
Code:
test_unix:ASCII text

And zip files appear as:
Code:
test.zip: Zip archive data


Previous Thread | Next Thread
Test Your Knowledge in Computers #29
Difficulty: Medium
Computer hard disks were first introduced in 1956.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

help required in converting a file format

My file format: -------------------------------------------------- Complete Consistency Check Valid Area : VALID:VALID Started by : esanwad Started at : Thu Dec 11 16:04:46 2014 CNA version : R21H04_EC08 Check range : AREA VALID/VALID ... (4 Replies)
Discussion started by: Gautam Banerjee
4 Replies

2. Shell Programming and Scripting

Need help in converting the file format

Hi All, I need help in converting the mentioned file format into desired output format using awk. Could anyone help me in this? Below is the input.. Date Account Campaign AdGroup Keyword Conversion Revenue Var1 Var2 Var3 Var4 Var5 10 20 30 ... (8 Replies)
Discussion started by: Ravi S M
8 Replies

3. UNIX for Dummies Questions & Answers

converting scripts from dos 2 unix format

Hi, I am new to shell scripting and exploring it , I have developed few sample shell script but I have developed them on windows xp notepad and then saving them on folder and then testing them on cywgin and running perfectly...but these scripts are in dos format and I want to convert them in unix... (1 Reply)
Discussion started by: rahul125
1 Replies

4. Shell Programming and Scripting

Script for converting a pdf to book format: an update

With reference to , the script posted by dokan fails via a Bash syntax error because my version of pdftk 1.41 has multiple lines matching to "Num", which are stored in the TOTAL variable. If we modify the first non-ignored line of the script from # Original TOTAL=$( pdftk "$1" dump_data output |... (1 Reply)
Discussion started by: aldebrn
1 Replies

5. Shell Programming and Scripting

Script for converting a pdf to book format

Hello, excuse my English... I'm trying to do a nautilus-script to transform a normal A4 pdf to another pdf with book format, ready to be printed (double sided). I mean, the script put pages in order and also put 2 pages per horizontal A4 page (p.e.: a pdf with 8 pages would look like: 8-1, 2-7,... (2 Replies)
Discussion started by: dokan
2 Replies

6. Shell Programming and Scripting

Convert UNIX file format to PC format

Hi All, Is there any way to convert a file which is in UNIX format to a PC format.... Flip command can be used , apart form this command can we have any other way.... like usinf "awk" etc ..... main purpose of not using flip is that my Kshell doesnot support this comamnd.... (2 Replies)
Discussion started by: Samtel
2 Replies

7. UNIX for Dummies Questions & Answers

Convert UNIX file format to PC format

Hi All, Is there any way to convert a file which is in UNIX format to a PC format.... Flip command can be used , apart form this command can we have any other way.... like usinf "awk" etc ..... main purpose of not using flip is that my Kshell doesnot support this comamnd.... (1 Reply)
Discussion started by: Samtel
1 Replies

8. Shell Programming and Scripting

Converting file format

My input file is Pipe delimited with 10 fields, I am trying to create a tab delimited output file with 6 fields from the provided input file. Below is sample data Input file abc||2|PIN|num||||www.123.com|abc@123.com| bcd||2|PIN|num|||||abc@123.com|... (3 Replies)
Discussion started by: pasupuleti81
3 Replies

9. Programming

converting unix timestamp into readable format using c++

hi everyone, im new here and am in desperate need of help. I want to convert my 32 bit unix time stamp ' 45d732f6' into a readable format (Sat, 17 February 2007 16:53:10 UTC) using c++. I have looked around the interent but i just cant make sense of anything. All examples i can find just... (3 Replies)
Discussion started by: uselessprog
3 Replies

10. UNIX Desktop Questions & Answers

Converting BMP to BM (or other unix format)

Hey pllz, ive got a little problem, i want to convert a bmp of gif or jpg to an unix format (bm) anybody got any suggestions ? greets\EJ (1 Reply)
Discussion started by: EJ =)
1 Replies

Featured Tech Videos