Unix, a file is asciii or not


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Unix, a file is asciii or not
# 1  
Old 03-13-2009
Data Unix, a file is asciii or not

Hi,
This query might sound familiar, but I have an issue in finding out whether the file is ascii or not.

The requirement:
1. Check if the file has any only ascii ,line feed , tab. If it contains any non-ASCII it has to fail.
2. The file size will go upto 1.5GB in size.
3. The length of every line is fixed . The number of lines will be upto 1 - 2 million.


What I tried:
I tried the file utility:
-------------------------------------------------------
file "$1" | grep -Fq executable &&
printf "%s is executable.\n" "$1"

and some script suggested in this forum like

ftype=2
file "$1" | /usr/xpg4/bin/grep -Fq ascii && ftype=0
file "$1" |/usr/xpg4/bin/grep -Fq executable && ftype=1
echo $ftype
-------------------------------------------------------
The manual says it will only check for the first 512 bytes. So the above samples aren't working in my case.

Could you please let me know how this can be achieved. Do I need to read every character and check for the ascii value of that character? If yes could you please provide me some sample scripts.

Thanks in advance
Hemanth.
# 2  
Old 03-16-2009
man cat
See the "-v" option which highlights non-printable characters with a "^" .
You can then count (wc -l) the number of lines containing non-printable characters.

Code:
#!/bin/ksh
FILENAME="my_file_name"
BAD=$(cat -v ${FILENAME}|grep "\^"|wc -l)
if [ ${BAD} -ne 0 ]
then
       echo "Bad file"
       exit
fi

# 3  
Old 03-16-2009
If the OP meant true ascii - ie., 7 bits 0 -127 allowed, then cat -v will flag valid characters with a ^. But it flags chars > 127 with M-^

Code:
#!/bin/ksh
FILENAME="my_file_name"
cat -v ${FILENAME}|grep -q 'M-\^'  # quit early when we find just one
if [ $? -eq 0 ]
then
       echo "Bad file"
       exit
fi

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Downloading hdfs file to local UNIX through UNIX script

Hi All , I am very new to unix script.I am aware of unix commands but never put together in unix script level.If any one can suggest me technical guidance in the below scenario that will highly beneficial. Data have been already migrated from mainframe to Hadoop file system(HDFS).HDFS server... (15 Replies)
Discussion started by: STCET22
15 Replies

2. What is on Your Mind?

If you're a UNIX file or UNIX file system. What are you and why?

I think i can consider myself as /dev/zero because my unix skills sucks. lol (8 Replies)
Discussion started by: csorhand
8 Replies

3. Shell Programming and Scripting

File Transfer from Window server to UNIX and UNIX to UNIX

Dear All, Can someone help to command or program to transfer the file from windows to Unix server and from one unix server to another Unix server in secure way. I would request no samba client. (4 Replies)
Discussion started by: yadavricky
4 Replies

4. UNIX Desktop Questions & Answers

Can Unix access Windows' File through Command Prompt in Unix

Hi all, I wish to know whether Unix can access window's file in Unix's terminal? Apart from that, how to copy files or share files between Window and Unix? I get to know of secure copy, however, my company's Unix does not support the feature of secure copy? Any other method for me to share/... (5 Replies)
Discussion started by: jessy83
5 Replies

5. Shell Programming and Scripting

UNIX script to FTP file from UNIX server to windows

Hi, I am new to this subject.....Can someone please help me out with the script... unix usernm "sdhftst" unix pwd "chsd13" windows usernm "dfghtst" windows pwd "chsd13" path..../xxx/xxxxx/xxxxxx/xxxxxxx please can u get me a script...its only one file to get ftp. Thanks... (2 Replies)
Discussion started by: himakiran9
2 Replies

6. Solaris

Before I delete any file in Unix, How can I check no open file handle is pointing to that file?

I know how to check if any file has a unix process using a file by looking at 'lsof <fullpath/filename>' command. I think using lsof is very expensive. Also to make it accurate we need to inlcude fullpath of the file. Is there another command that can tell if a file has a truely active... (12 Replies)
Discussion started by: kchinnam
12 Replies

7. Shell Programming and Scripting

Batch job in unix server to move the pdf file from unix to windows.

Hi Experts, I have a requirement where i need to setup a batch job which runs everymonth and move the pdf files from unix server to windows servers. Could some body provide the inputs for this. and also please provide the inputs on how to map the network dirve in the unix like that... (1 Reply)
Discussion started by: ger199901
1 Replies

8. Shell Programming and Scripting

Need to write a script to reformat a file in unix but not familiar with unix

unix script must do the fiollowing open a file containing comma delimited records > each record contains 10 fields > removes the 2nd field and use that same field containing fields 2 to 10 the original record after fprocessing should containing fields 1 and 3 a new erecord must be... (10 Replies)
Discussion started by: dwightja
10 Replies

9. Shell Programming and Scripting

Can we call JSP file from Unix.if so how.Please help me.Im newbie to Unix

Hi Can we call a jsp page from Unix.if so please let me know how we can.. thanks for the help in advance... thanks kumar (0 Replies)
Discussion started by: mailsukumar
0 Replies

10. Shell Programming and Scripting

FTP script for sending a file from one unix directory to another unix server director

Hi, My local server is :/usr/abcd/ Remote server is :/Usr/host/test/ I want to send files from local unix directory(All files starting with O_999) to remote host unix directory. Can any body give me the Unix Shell script to do this. One more doubt: Shall we need to change the file... (1 Reply)
Discussion started by: raja_1234
1 Replies
Login or Register to Ask a Question