Cut command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Cut command
# 1  
Old 06-19-2014
Cut command

I have command like below.
[ls /a/bc_de/fe_rt/ghl/CW_CA_CA_20140128_150752.xml]

From the above command, how I can cut and take time field 20140128_150752 alone

---------- Post updated at 01:45 AM ---------- Previous update was at 01:44 AM ----------

Code:
 
ls /a/bc_de/fe_rt/ghl/CW_CA_CA_20140128_150752.xml

# 2  
Old 06-19-2014
A few questions first:-
  • What have you tried so far?
  • Have you read the manual page for cut?
  • Have you considered variable substitution? (slicing up ta variable without calling cut
Most importantly, What have you tried so far?

You will get a better answer if you can show that you've put some effort in.




Robin
# 3  
Old 06-19-2014
using cut command

Code:
echo "/a/bc_de/fe_rt/ghl/CW_CA_CA_20140128_150752.xml" | cut -d / -d _ -f 6,7 | cut -d . -f 1

# 4  
Old 06-19-2014
Not exactly certain on what you mean, I agree with techmonk to use cut if you certain with the format is always the same.

Another way using sed, depends on what is your exact requirement.

Code:
$ ls a/bc_de/fe_rt/ghl/CW_CA_CA_20140128_150752.xml | xargs basename | sed -n 's/.*_\([0-9]*_[0-9]*\).xml/\1/p'
20140128_150752

# 5  
Old 06-20-2014
Invoking cut twice or ls, xargs, and basename are very expensive ways to do this.

Making a several assumptions about what is wanted here (and only using shell built-ins):
Code:
#!/bin/ksh
path="/a/bc_de/fe_rt/ghl/CW_CA_CA_20140128_150752.xml"

if [ ! -e "$path" ]
then	printf "ls: %s: No such file or directory\n" "$path" >&2
	exit 1
fi
out=${path##*[![:digit:]]_}
out=${out%.*}
printf "%s\n" "$out"

produces the output:
Code:
20140128_150752

if the file exists, and writes the diagnostic:
Code:
ls: /a/bc_de/fe_rt/ghl/CW_CA_CA_20140128_150752.xml: No such file or directory

to standard error output and exits with a non-zero exit status if it doesn't exist.

Of course, however, this doesn't give you the localized diagnostics you should get from ls if you're using a non-English locale.

Although this was tested using the Korn shell, this will work with any shell that performs the parameter expansions required by the POSIX standards (such as ksh and bash).

Last edited by Don Cragun; 06-20-2014 at 04:58 AM.. Reason: Fix tag.
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. Shell Programming and Scripting

Cut command

Hi All, I am a beginner learning shell script, Would it be possible to use -c and -f in cut command together ? Example : /opt/oracle/work/Antony/Shell_Script> cat shortlist 2233|a.k. shukula |g.m. |sales2 |12/12/52 |6000 1006|chanchal singhvi ... (3 Replies)
Discussion started by: Antony Ankrose
3 Replies

3. AIX

Need help on cut command

HI, i have data in one variable like out=/usr/sbin/filename and i want output like only out=filename how to do (5 Replies)
Discussion started by: sumanthupar
5 Replies

4. 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

5. 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

6. Shell Programming and Scripting

cut command help

n2=user1 pts/3 2010-06-29 01 Now i want to split this string with space(' ') character. After splitting output would be: use1 pts/3 2010-06-29 01 I did: nn=${n2} | cut -d ' ' -f2 echo ${nn} It prints nothing. I want the output: pts/3 (2 Replies)
Discussion started by: cola
2 Replies

7. AIX

Use of Cut Command

Hi All, Can anyone tell me how to use cut command?I have tried but its not working...Please find the details below : $ cat file1 SlNo. E_ID E_Name Age Dept 1 123 A 20 Electrical 2 124 B 20 Electronics 3 125 C 24 Computer 4 126 D 23 Mechanical ... (3 Replies)
Discussion started by: Puja Sharma
3 Replies

8. UNIX for Dummies Questions & Answers

Cut Command help

Hi , I am new to Unix.I have a shell script whenere I wnat to find if a particular server is running and kill all the instances of it (running on different ports) script filename to start the srever is say abcd If i do ps -eaf | grep abc I get all the instances of srever running .In the... (1 Reply)
Discussion started by: shradham
1 Replies

9. UNIX for Dummies Questions & Answers

CUT Command

Hi, Can anyone tell me if I can apply multiple cut on a single variable like below in a sh script: tmp=`cut -c 1-4 $val` tmp1=`cut -c 5-12 $val` tmp2=`cut -c 13-18 $val` If not, what is the other way to do this. Thanks and Best Regards Shoeb (17 Replies)
Discussion started by: shoeb_syed
17 Replies
Login or Register to Ask a Question