cut command Behaving Differnetly in different Version


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users cut command Behaving Differnetly in different Version
# 1  
Old 08-10-2011
cut command Behaving Differnetly in different Version

Hi,

We have few hundered scripts using cut command in thousands of lines. On HP-UX shell script developer used
Code:
echo "ABCEFG" | cut -c -1-3

to cut first three character of the string. We recently moved to Linux and this command throws error. I think this might be due to different version of cut binary. Is there an easy way to get around with this issue. Changing in all scripts is too risky thing to do.



Best Regards,
Smilie
# 2  
Old 08-10-2011
I think you'll have to change something in all scripts, no matter what.
  1. Change all occurrences to the POSIX conforming cut -c 1-3, which should then work on all Unices and compatible systems (like Linux)
  2. Define a cut shell function, overriding the program, which checks what OS it's on and calls the real cut with different parameters
  3. Change the name of the cut binary to something else, and replace it with a shell script that calls cut as it should be, with the possibility of breaking some important system script

Personally, I'd go with option a.
# 3  
Old 08-10-2011
A variant of (c) - add a shell script "cut" to some DIR and add this DIR to PATH before running your scripts.
This script may look like this (assuming your args do not have spaces):
Code:
#!/bin/sh

for arg; do
  case "$arg" in
    -c) shift;;
    -[0-9]*) nums="$arg"; shift;;
    *) args="$args $arg"; shift;;
  esac
done

nums=`echo $nums | sed 's/^-/-c/'`

/usr/bin/cut $nums $args

This User Gave Thanks to yazu For This Post:
# 4  
Old 08-15-2011
Many Many thanks it worked.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Cut command: can't make it cut fields

I'm a complete beginner in UNIX (and not a computer science student either), just undergoing a tutoring course. Trying to replicate the instructions on my own I directed output of the ls listing command (lists all files of my home directory ) to My_dir.tsv file (see the screenshot) to make use of... (9 Replies)
Discussion started by: scrutinizerix
9 Replies

2. UNIX for Dummies Questions & Answers

Cut pid from ps using cut command

hay i am trying to get JUST the PID from the ps command. my command line is: ps -ef | grep "mintty" | cut -d' ' -f2 but i get an empty line. i assume that the delimiter is not just one space character, but can't figure out what should i do in order to do that. i know i can use awk or cut... (8 Replies)
Discussion started by: ran ber
8 Replies

3. Shell Programming and Scripting

jobs command behaving differently in script

Here is my test script: #!/bin/sh result=`jobs` echo " Jobs: "$result result=`ls` echo " LS "$result Here is the output: Jobs: LS 0 1 2 3 4 5 6 7 gcd initialize.sh #inter_round_clean.sh# inter_round_clean.sh inter_round_clean.sh~ look parallel_first_run.sh... (3 Replies)
Discussion started by: nealh
3 Replies

4. Shell Programming and Scripting

Cut Command error cut: Bad range

Hi Can anyone what I am doing wrong while using cut command. for f in *.log do logfilename=$f Log "Log file Name: $logfilename" logfile1=`basename $logfilename .log` flength=${#logfile1} Log "file length $flength" from_length=$(($flength - 15)) Log "from... (2 Replies)
Discussion started by: dgmm
2 Replies

5. Shell Programming and Scripting

Grep command behaving strangely

Hi, I need to count number of '$' symbol in a file and assign it to a variable. I am using below command. grep -c '\$' inputfile O/p: 10359 Its giving correct o/p but when I am assigning the same to a variable its giving completely different o/p. ab1=`grep -c '\$' inputfile` $... (3 Replies)
Discussion started by: Opamps123
3 Replies

6. Shell Programming and Scripting

sed and cut behaving differently

I have attached a file with few records. First 2 characters of each record are binary characters. I can remove it by and it works fine. But is behaving differently and removing more than expected characters. Can someone help me in accomplishing it through sed? Thanks in advance. (13 Replies)
Discussion started by: amicon007
13 Replies

7. UNIX for Dummies Questions & Answers

Uniq command behaving odd

My file has k s j v l k a s f l k s a d f j l a s (3 Replies)
Discussion started by: phoenix_nebula
3 Replies

8. Shell Programming and Scripting

tr command behaving unexpectedly

Im trying to execute the below command on our server to list files and replace the newline in the file list with spaces, but the character 'n' is getting replaced with a space, is there any environment variable that needs to be set in UNIX? sh -c 'ls -trx... (1 Reply)
Discussion started by: rameshrr3
1 Replies

9. UNIX for Dummies Questions & Answers

awk command behaving differntly on 2 servers--urgent

Hi I am using awk command for string replacement. I have 2 servers. The command runs perfectly well on 1st server On the second server when i run the command on the same datset The command gets stuck while processing a large piece of record.. Does it have anything to with setting on the 2... (1 Reply)
Discussion started by: aixjadoo
1 Replies
Login or Register to Ask a Question