Cut the first field and the 2 last field


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Cut the first field and the 2 last field
# 1  
Old 06-05-2019
Cut the first field and the 2 last field

Hello,

I would like to cut the first field and the 2 last fields from the string.Please help.
Here is the example of the string.
Code:
DL_FUND_FULL_20190605.txt
DL_FUND_HIS_DEL_20190605.txt
DL_FUND_HIS_TMP_DEL20190605.txt

Please noted that
DL_ --> Every files have the prefix like this.
FULL_YYYYMMDD,DEL_YYYYMMDD --> There are 2 types of the suffix files like this.
The rest in the centre is Table names which cannot define how many character they have
FUND,FUND_HIS,FUND_HIS_TMP

I would like to get the name of table thus I use this command

Code:
echo "DSL_EDUCATE_LEVEL_FULL_20190605.ctl" | rev | cut -d "_" -f3- | rev

The answer for each line are:
Code:
DL_FUND
DL_FUND_HIS
DL_FUND_HIS_TMP

However, I cannot figure out how to cut DL_ into that command. The result that I would like to have are
Code:
FUND
FUND_HIS
FUND_HIS_TMP


Last edited by rbatte1; 06-06-2019 at 11:32 AM..
# 2  
Old 06-06-2019
Welcome to the forum.


Why not extend the logics that you already apply, like
Code:
rev | cut | rev | cut -d"_" -f2-

? But, this would require to create and run four processes per table name. Better to use shell builtins like
Code:
while read FN; do FN="${FN#*_}"; echo "${FN%_*_*}"; done < file
FUND
FUND_HIS
FUND_HIS
EDUCATE_LEVEL

, or, use a short sed script:
Code:
sed 's/^[^_]*_//; s/\(_[^_]*\)\{2\}$//'  file

These 2 Users Gave Thanks to RudiC For This Post:
# 3  
Old 06-06-2019
Thanks a lot!
# 4  
Old 06-07-2019
Code:
$ awk -F"DL_|_(DEL|FULL)_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" ' { print $2 } ' file
FUND
FUND_HIS
FUND_HIS_TMP

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how to cut the last field without using awk

i have file as with the below content aaa.bbb.cc.dd aaa.fff.bb yyyyy.rrrrr.ggggg.iii wwww.w.r.ty i want the o/p as below dd bb iii ty but i dont want to use awk. is there any other way to do this ? (5 Replies)
Discussion started by: anandgodse
5 Replies

2. Shell Programming and Scripting

Cut third field of every third line

Hello, I have got a log file and would need to write a script to cut the every first and second fields of every third line. Job Name : dummytextd_v1 Status : KILLED TIMEDOUT 2011-05-01 05:33 Job Name : dummyttx_v1 Status : KILLED TIMEDOUT 2011-05-03 02:33 Job Name :... (4 Replies)
Discussion started by: Kochappa
4 Replies

3. Shell Programming and Scripting

how to cut a particular field

hi all i am need to cut the name of the file which i am entering in the comand line. say abc.txt is the name of the file i need to cut only the "abc" part. when i try doing this(using cut -f1) i am getting the data that s present inside the file and the file name. pls help.... (3 Replies)
Discussion started by: din_annauniv
3 Replies

4. Shell Programming and Scripting

cut a field, but with reverse order

Hi Everyone, I have one a.txt: a b 001 c b b 002 c c c, not 002 c The output should be 001 002 002 If i use cut -f 3 -d' ', this does not work on the 3rd line, so i thought is any way to cut the field counting from the end? or any perl thing can do this?:confused: ... (3 Replies)
Discussion started by: jimmy_y
3 Replies

5. UNIX for Advanced & Expert Users

Printing Field with Delimiter in AWK/cut

Hello, I had posted earlier about printing fields using AWK, but now I have a slightly different problem. I have text files in the format: 1*2,3,4,5 and wish to print the first, third, and fifth fields, including the asterisk and commas. In other words, after filtering it should look... (1 Reply)
Discussion started by: Jahn
1 Replies

6. Shell Programming and Scripting

Cut portion of a field in shell scripts

Hi, I am a file with the following layout. field1|field2|field3|field4|field5|field6|field7 field1|field2|field3|field4|field5|field6|field7 field1|field2|field3|field4|field5|field6|field7 I need to write a file with the below layout field1|field2|fieldx|field6 where fieldx =... (5 Replies)
Discussion started by: shivacbz
5 Replies

7. Shell Programming and Scripting

Cut the last field

Hello guys. Is there any way I can cut the last field using "cut" ??? (without putting it into a while...) Thanks. 435 Gavea. (9 Replies)
Discussion started by: 435 Gavea
9 Replies

8. Shell Programming and Scripting

How do I cut out this field?

Hello, In a shell script I am writing I execute this command: uniq -c names1.tmp > names2.tmp In names2.tmp I get these results: 4 user 2 username 1 users 1 veriano 1 victoria I need to isolate the names in this file and put it in another file. However it seems that the number... (7 Replies)
Discussion started by: mojoman
7 Replies

9. Shell Programming and Scripting

Cut last Field

Guys, I have a line like this: 109;201;1099010 and as you see that first field 109 and the last field starts with 109. I need to cut the rest in the last field after 109 which is 9010 How to do it? (2 Replies)
Discussion started by: sfaqih
2 Replies

10. UNIX for Dummies Questions & Answers

how to use cut to get the last field of a string?

If I am not sure of how many fields a string has, say STR=/homt/root/dir1/dir2/../dirn how to use "cut -d/ -f" to get dirn ? (3 Replies)
Discussion started by: meili100
3 Replies
Login or Register to Ask a Question