Sponsored Content
Top Forums Shell Programming and Scripting Check for length which exceeds specified length in a line Post 302735599 by RudiC on Sunday 25th of November 2012 04:44:56 PM
Old 11-25-2012
Try this; may need some polishing, esp. reg. the lenghts to be supplied in a variable:
Code:
$ cat file
checking,the, lengthof, string
$ awk -F, 'BEGIN {split("5,6,7,8", len, ",");  OFS=","}
           {for (i=1; i<=NF; i++) if(length($i) > len[i]) {$i = substr($i, 1, len[i]); col[i]++; OA=1}}
           {printf "%s", $0;
            if (OA) {printf ", Fields ";
                     for (i=1; i<=NF; i++) {if (col[i]) printf "col%d ", i; col[i]=0;}
                     printf "exceed the length."
                    }
            printf "\n"; OA=0
           }
          ' file
 check,the, length, string, Fields col1 col3 exceed the length.


Last edited by RudiC; 11-25-2012 at 06:16 PM..
 

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
readlink(2)							System Calls Manual						       readlink(2)

NAME
readlink() - read the contents of a symbolic link SYNOPSIS
DESCRIPTION
The function places the contents of the symbolic link referred to by path in the buffer buf which has size bufsiz. If the number of bytes in the symbolic link is less than bufsiz, the contents of the remainder of buf are unspecified. In systems conforming to AES standards, the returned string will be null-terminated if the length of the path name string is less than buf- siz. If the length of the path name string is exactly bufsiz, the string will not be null-terminated when returned. If the length of the path name string exceeds the function returns and sets to Note The kernel tunable parameter can be queried to determine whether a system conforms to AES standards. RETURN VALUE
Upon successful completion, returns the count of bytes placed in the buffer. Otherwise, it returns a value of leaves the buffer unchanged, and sets to indicate the error. ERRORS
The function will fail if: [EACCES] Search permission is denied for a component of the path prefix. [EACCES] Read permission is denied for the directory. [EFAULT] or points outside the process's allocated address space. Reliable detection of this error is implementation-depen- dent. [EINVAL] The path argument names a file that is not a symbolic link. [EIO] An I/O error occurred while reading from the file system. [ELOOP] Too many symbolic links were encountered in resolving path. [ENAMETOOLONG] The length of path exceeds or a pathname component is longer than In systems conforming to AES standards, this error will be returned when the path exceeds the bytes or a pathname component exceeds the bytes while is in effect. [ENAMETOOLONG] Pathname resolution of a symbolic link produced an intermediate result whose length exceeds [ENOENT] A component of path does not name an existing file or path is an empty string. [ENOTDIR] A component of the path prefix is not a directory. [ERANGE] The length of the name string read from the symbolic link exceeds AUTHOR
was developed by the University of California, Berkeley. SEE ALSO
stat(2), symlink(2), symlink(4), privileges(5), <unistd.h>. STANDARDS CONFORMANCE
readlink(2)
All times are GMT -4. The time now is 06:20 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy