Today's Posts

BSD, Linux, and UNIX shell scripting Post awk, bash, csh, ksh, perl, php, python, sed, sh, shell scripts, and other shell scripting languages questions here.

Cut command on RHEL 6.8 compatibility issues

shell scripts

Login to Reply

Thread Tools Search this Thread
# 1  
Old 06-29-2016
Cut command on RHEL 6.8 compatibility issues

We have a lot of scripts using cut as :
cut -c 0-8 --works for cut (GNU coreutils) 5.97, but does not work for cut (GNU coreutils) 8.4.
Gives error -
cut: fields and positions are numbered from 1
Try `cut --help' for more information.

The position needs to start with 1 for later version of cut and this is causing an issue.

Is there a way where I can have multiple cut versions installed and use the older version of cut for the user which runs the script?

or any other work around without having to change the scripts?


Last edited by RudiC; 06-30-2016 at 05:53 AM.. Reason: Added code tags.
# 2  
Old 06-29-2016
What are you trying to do when you invoke
cut -c 0-8

with your old version of cut?

With that old version of cut, is there any difference in the output produced by the two pipelines:
echo 0123456789abcdef | cut -c 0-8

echo 0123456789abcdef | cut -c 1-8

or do they produce the same output?
# 3  
Old 06-30-2016
I am trying to get a value from the 1st line of the file and check if that value is a valid date or not.
Below is the output for the cut command from new version
 $ echo 0123456789abcdef | cut -c 0-8
cut: fields and positions are numbered from 1
Try `cut --help' for more information.
$ echo 0123456789abcdef | cut -c 1-8

With old version, both have same results:
$ echo 0123456789abcdef | cut -c 0-8
$ echo 0123456789abcdef | cut -c 1-8

Moderator's Comments:
Cut command on RHEL 6.8 compatibility issues
Please wrap all code, files, input & output/errors in CODE tags
It makes them far easier to read and preserves spaces for indenting or fixed-width data.

Last edited by rbatte1; 06-30-2016 at 12:38 PM.. Reason: Code tags
# 4  
Old 06-30-2016
The use of 0 is not according to specification. Alternatively, you can just omit it, which should work across versions
$ echo 0123456789abcdef | cut -c -8

If you cannot adjust the scripts, you could perhaps create a wrapper script for cut, so that the 0 gets stripped..

Last edited by Scrutinizer; 07-02-2016 at 03:28 AM..
The Following User Says Thank You to Scrutinizer For This Useful Post:
Vikram Jain (06-30-2016)
# 5  
Old 06-30-2016
Yes, don't want to adjust my scripts.
Wrapper for cut looks like something that would work.

could you please tell me how would I use it, as in, how would I make sure that the wrapper is called and not the cut command which causes the issue.
# 6  
Old 06-30-2016
The only way to make sure that your wrapper is always called instead of the OS supplied utility is to move the OS supplied utility to a different location and install your wrapper in the location where your OS installed cut originally.

Of course, once you have installed this wrapper, your code might or might not work properly (depending on the quality of your wrapper) and no one else on your system will be able to look at the diagnostics produced by scripts that have bugs in the way they specify field and character ranges so they can identify and fix their code.

My personal opinion is that you should spend time fixing your scripts that call cut -c 0...., cut -f 0..., and lots of other possible misuses of 0 that are now correctly diagnosed as errors by the new version of cut instead of debugging code to be sure that it changes all of the appropriate 0 characters in its argument list to 1 characters and doesn't change any 0 characters that are correctly specified and do not reference a character 0 or field 0.
The Following 2 Users Say Thank You to Don Cragun For This Useful Post:
vgersh99 (06-30-2016), Vikram Jain (06-30-2016)
# 7  
Old 06-30-2016
An update of "cut" will overwrite your wrapper.
Much better: change your scripts. Run the following fix_cut script on your scripts:
# fix_cut
for arg
  perl -ne 'exit 1 if m/'"$PRE"'/' "$arg" || {
    perl -i -pe 's/'"$PRE"'/${1}1-/g' "$arg"

Example: fix all .sh scripts
fix_cut *.sh

The Following User Says Thank You to MadeInGermany For This Useful Post:
Vikram Jain (07-08-2016)
Login to Reply

« Previous Thread | Next Thread »
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
RHEL 6, Spacewalk 2.3 unable to download RHEL 5 repo data jstone4646 Red Hat 3 05-20-2015 11:45 PM
Create/remove desktop short cuts via command line RHEL 6.3.... ruberked UNIX Desktop Questions & Answers 0 09-10-2013 09:27 AM
RHEL 6.3 - chage command not redirecting the output to console. Srini.rk1983 Linux 3 06-27-2013 03:50 AM
Compatibility issues between Sun solaries & AIX commands. 46019 Shell Programming and Scripting 1 05-23-2013 08:40 AM
Test Network Routing Issues (FREEBSD and RHEL) shadyuk IP Networking 0 05-19-2013 01:39 PM
Error throwing while installing vsftpd package in rhel 6. using rhel 6 dvd. redhatlbug Red Hat 6 03-06-2013 04:06 PM
Does RHEL 5 provide a command to collect RHEL system log in single compress file? nnnnnnine Red Hat 4 11-04-2011 05:08 AM
Apache / Tomcat / APR Issues [RHEL] cpickering Red Hat 2 01-20-2011 07:47 AM
Solaris 8 vs Solaris 10 compatibility issues ! sudsa Solaris 1 05-11-2010 01:30 PM
Date time issues on RHEL sumitb74 UNIX for Dummies Questions & Answers 5 07-21-2008 07:46 AM

All times are GMT -4. The time now is 09:28 PM.

Unix & Linux Forums Content Copyright 1993-2018. All Rights Reserved.
Show Password