Sponsored Content
Top Forums Shell Programming and Scripting Check for length which exceeds specified length in a line Post 302733705 by itkamaraj on Wednesday 21st of November 2012 01:08:37 AM
Old 11-21-2012
Code:
awk -F, 'BEGIN {len="5,6,7,8";split(len,arr,",");}{for(i=1;i<=NF;i++){if(length($i)>arr[i])next}}1' input.csv

Code:
 
$ cat input.csv
this123,is,test,message
this,is,test,message
this,is,test,message
this,is,test,message123

Code:
 
$awk -F, 'BEGIN {len="5,6,7,8";split(len,arr,",");}{for(i=1;i<=NF;i++){if(length($i)>arr[i])next}}1' input.csv
this,is,test,message
this,is,test,message

5,6,7,8 is the length to check the 1,2,3,4 fileds

if you want to check only for some particular fields, then

Code:
 
$awk -F, 'BEGIN {len="5,0,0,8";split(len,arr,",");}{for(i=1;i<=NF;i++){if( arr[i]!=0 && length($i)>arr[i])next}}1'  input.csv
this,is,test,message
this,is,test,message

 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

creating a fixed length output from a variable length input

Is there a command that sets a variable length? I have a input of a variable length field but my output for that field needs to be set to 32 char. Is there such a command? I am on a sun box running ksh Thanks (2 Replies)
Discussion started by: r1500
2 Replies

2. UNIX for Dummies Questions & Answers

Sed working on lines of small length and not large length

Hi , I have a peculiar case, where my sed command is working on a file which contains lines of small length. sed "s/XYZ:1/XYZ:3/g" abc.txt > xyz.txt when abc.txt contains lines of small length(currently around 80 chars) , this sed command is working fine. when abc.txt contains lines of... (3 Replies)
Discussion started by: thanuman
3 Replies

3. UNIX for Dummies Questions & Answers

What the command to find out the record length of a fixed length file?

I want to find out the record length of a fixed length file? I forgot the command. Any body know? (9 Replies)
Discussion started by: tranq01
9 Replies

4. Shell Programming and Scripting

include NULLs in line length check

Hello, I am checking the length of each line of a fixed length file and making sure all lines are 161 length. My problem is that some files contain null characters which gets stripped out of my echo. How do I have the NULLs included in my check? (and I cannot replace or sub the NULL values with... (10 Replies)
Discussion started by: ironmix
10 Replies

5. Shell Programming and Scripting

Make variable length record a fixed length

Very, very new to unix scripting and have a unique situation. I have a file of records that contain 3 records types: (H)eader Records (D)etail Records (T)railer Records The Detail records are 82 bytes in length which is perfect. The Header and Trailer records sometimes are 82 bytes in... (3 Replies)
Discussion started by: jclanc8
3 Replies

6. Shell Programming and Scripting

changing a variable length text to a fixed length

Hi, Can anyone help with a effective solution ? I need to change a variable length text field (between 1 - 18 characters) to a fixed length text of 18 characters with the unused portion, at the end, filled with spaces. The text field is actually field 10 of a .csv file however I could cut... (7 Replies)
Discussion started by: dc18
7 Replies

7. Shell Programming and Scripting

Flat file-make field length equal to header length

Hello Everyone, I am stuck with one issue while working on abstract flat file which i have to use as input and load data to table. Input Data- ------ ------------------------ ---- ----------------- WFI001 Xxxxxx Control Work Item A Number of Records ------ ------------------------... (5 Replies)
Discussion started by: sonali.s.more
5 Replies

8. Shell Programming and Scripting

Array Length Reports as Having Length when it is Empty?

Hello All, I have this script that does stuff like "starting, stopping & restarting" a Daemon Process running on my machine... My main question is why in part of my code (which you will see below) does the Array Length (i.e. ${#PIDS} ) return "1" when I know the Array is empty..? Here is... (17 Replies)
Discussion started by: mrm5102
17 Replies

9. Shell Programming and Scripting

Convert variable length record to fixed length

Hi Team, I have an issue to split the file which is having special chracter(German Char) using awk command. I have a different length records in a file. I am separating the files based on the length using awk command. The command is working fine if the record is not having any... (7 Replies)
Discussion started by: Anthuvan
7 Replies
truncate(2)							System Calls Manual						       truncate(2)

NAME
ftruncate, truncate - truncate a file to a specified length SYNOPSIS
DESCRIPTION
The function causes the regular file referenced by fildes to have a size of length bytes. The function causes the regular file named by path to have a size of length bytes. The effect of and on other types of files is unspecified. If the file previously was larger than length, the extra data is lost. If it was previously shorter than length, bytes between the old and new lengths are read as zeroes. With the file must be open for writing; for the process must have write permission for the file. If the request would cause the file size to exceed the soft file size limit for the process, the request will fail and the implementation will generate the signal for the process. These functions do not modify the file offset for any open file descriptions associated with the file. On successful completion, if the file size is changed, these functions will mark for update the st_ctime and st_mtime fields of the file, and if the file is a regular file, the and bits of the file mode may be cleared. RETURN VALUE
Upon successful completion, returns 0. Otherwise a -1 is returned, and is set to indicate the error. ERRORS
If or fails, is set to one of the following values: A signal was caught during execution. The length argument was less than 0. [EFBIG] or [EINVAL] The length argument was greater than the maximum file size. An I/O error occurred while reading from or writing to a file system. Enforcement mode file/record locking is set (see chmod(2)), and there are outstanding record locks on the file with the or system calls. If fails, is set to one of the following values: [EBADF] or [EINVAL] The fildes argument is not a file descriptor open for writing. The user's disk quota block limit has been reached for this file system. The fildes argument references a file that was opened without write permission. If fails, is set to one of the following values: A component of the path prefix denies search permission, or write permission is denied on the file. The user's disk quota block limit has been reached for this file system. path points outside the process's allocated address space. The reliable detection of this error is implementation dependent. The named file is a directory. Too many symbolic links were encountered in resolving path. Pathname resolution produced an intermediate result whose length exceeds bytes, or the length of a component of the pathname exceeds bytes. A component of does not name an existing file or path is an empty string. A component of the path prefix of path is not a directory. The named file resides on a read-only file system. The file is a pure procedure (shared text) file that is being executed. AUTHOR
was developed by the University of California, Berkeley. SEE ALSO
chmod(2), fcntl(2), flock(2), ftruncate64(2), lockf(2), open(2), truncate64(2), privileges(5), <unistd.h>. CHANGE HISTORY
First released in Issue 4, Version 2. STANDARDS CONFORMANCE
truncate(): AES ftruncate(): AES, SVID3 truncate(2)
All times are GMT -4. The time now is 02:26 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy