Cut command on RHEL 6.8 compatibility issues


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Cut command on RHEL 6.8 compatibility issues
# 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 -
Code:
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?

Thanks.

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
Code:
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:
Code:
echo 0123456789abcdef | cut -c 0-8

and:
Code:
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
Code:
 $ 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
01234567

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


Moderator's Comments:
Mod Comment
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
Code:
$ echo 0123456789abcdef | cut -c -8
01234567

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..
This User Gave Thanks to Scrutinizer For This Post:
# 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.
These 2 Users Gave Thanks to Don Cragun For This Post:
# 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:
Code:
#!/bin/sh
# fix_cut
PATH=/bin:/usr/bin
PRE="\b(cut\s+(-\S*\s+)*-[cf]\s*0*)0-"
for arg
do
  perl -ne 'exit 1 if m/'"$PRE"'/' "$arg" || {
    perl -i -pe 's/'"$PRE"'/${1}1-/g' "$arg"
  }
done

Example: fix all .sh scripts
Code:
fix_cut *.sh

This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Red Hat

RHEL 7 distribution compatibility

Hi all, I'm new here. I am currently using RHEL 6.10 and transitioning to RHEL 7 soon. Some of my GUI developments are developed using Glade v2.6.8. My question is: Is Glade v2.6.8 compatible with RHEL 7? Do I need to install additional libraries or dependencies? I looked up the list of... (1 Reply)
Discussion started by: chaosvn
1 Replies

2. Shell Programming and Scripting

Compatibility issues between Sun solaries & AIX commands.

Hi, I am migrating few of the shell scripts from existing SUN Solaries to AIX. My script contains some command like 'dos2unix' and 'unix2dos' which are not compatible in AIX flavour. Please let me know if there is any such commands in AIX which can replace these commands. Thanks. (1 Reply)
Discussion started by: 46019
1 Replies

3. IP Networking

Test Network Routing Issues (FREEBSD and RHEL)

Hello, I'm attempting to setup a test network with a client-server based architecture using a proprietary application. The client works by communicating with the server on separate links (typically cellular connections) and then initiates a tunnel over each active link. However, in place of the... (0 Replies)
Discussion started by: shadyuk
0 Replies

4. Homework & Coursework Questions

sed & cut command issues

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: After using the egrep command to pull certain lines from the asg5f1 (creating the asg5f1c file), I am required... (1 Reply)
Discussion started by: robrom78
1 Replies

5. Red Hat

Does RHEL 5 provide a command to collect RHEL system log in single compress file?

Hi, I heard a command that can collect all RHEL 5 log in a single compress file before I forget. Does any body know...What the command is ? Thanks. (4 Replies)
Discussion started by: nnnnnnine
4 Replies

6. Red Hat

Apache / Tomcat / APR Issues [RHEL]

Evening, I'm posting for help here, because I'll be honest I've reached the end of my tether, hopefully someone can give me some assistance and help me maintain a level of sanity... I maintain a number of webservers on RHEL 5 64Bit (Red Hat Enterprise Linux Server release 5.3 (Tikanga)), the... (2 Replies)
Discussion started by: cpickering
2 Replies

7. UNIX for Dummies Questions & Answers

having issues in using Cut Command

Hi, I would like to ask for your help with my problem, im writing a unix script to remove characters before the symbol "/", but the one being removed are characters after the symbol. Ive searched over the internet and found no answer.. hope you can help me with this. sample: text... (2 Replies)
Discussion started by: paoie
2 Replies

8. UNIX for Dummies Questions & Answers

Date time issues on RHEL

Hi, I am facing a weird problem with the 'Date'. If I check date multiple times in a short interval I see a different time altogether. Here is an example $ date Tue Jul 15 02:07:22 PDT 2008 $ date Tue Jul 15 02:07:23 PDT 2008 $ date Tue Jul 15 03:20:42 PDT 2008 $ date Tue Jul 15... (5 Replies)
Discussion started by: sumitb74
5 Replies

9. Shell Programming and Scripting

Issues with cut

We are running on a Sun cluster using ksh. We have a script that has been running for about six months with no issues. The script has not been modified and our results are now coming out diffrent. <BEGIN> cat $exfile | while read line do ... (1 Reply)
Discussion started by: bthomas
1 Replies
Login or Register to Ask a Question