Remove last number from a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Remove last number from a file
# 15  
Old 06-07-2013
Quote:
Originally Posted by rveri
... ... ...

What is working is this code:
Code:
awk '{$NF="";print $0}' file

This might or might not work for the OP. This code doesn't remove the last field, it changes it to an empty string. The distinction is important because the OFS will appear at the end of the line separating the next to the last field from the now empty last field.

If you use Yoda's approach, the last field and the last field separator will both be removed. Note, however, that Yoda's approach will also fail on some systems (including at least Mac OS X) if you're trying to remove the only field from a line. A standards conforming awk script trying to remove the last field from each line (possibly producing an empty line) would require something like:
Code:
awk 'BEGIN{FS=OFS=","}{--NF <= 0 ? $0 = "" : $1 = $1;print}'

which when given the input:
Code:
1,2,3
1,2
1
a,b,c

produces the output:
Code:
1,2
1

a,b

while Yoda's script ('{ NF--; $1 = $1 }') produces:
Code:
1,2
1
1
a,b

on some systems (again, including Mac OS X).
# 16  
Old 06-07-2013
None working for me either.... I tried on SunOS (on windows) and Darwin on (Mac OS)...
# 17  
Old 06-07-2013
Use nawk in SunOS.
Code:
nawk -F, '{ NF--; $1 = $1 }1' OFS=, file

Or Don's proposal:
Code:
nawk 'BEGIN{FS=OFS=","}{--NF <= 0 ? $0 = "" : $1 = $1;print}' file

# 18  
Old 06-07-2013
Quote:
Originally Posted by juzz4fun
None working for me either.... I tried on SunOS (on windows) and Darwin on (Mac OS)...
Here's a perl. This will work.

Code:
[user@host ~]$ cat file
1,2,3,4,5,6,7,8
1,2,3,4,5,6,7,8
1,2,3,4,5,6,7,8
1,2,3,4,5,6,7,8
[user@host ~]$ perl -F',' -lane 'print join (",", @F[0..$#F-1])' file
1,2,3,4,5,6,7
1,2,3,4,5,6,7
1,2,3,4,5,6,7
1,2,3,4,5,6,7
[user@host ~]$

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Remove string between number and character

hello ! I have to remove string between a number and set of characters. For example, 35818 -stress - - -stress - - - - - - DB-3754 44412 caul kid notify DB-3747 54432 roberto -, notify DB-3725 55522 aws _ _int _ _classified 2_a _a 2_m _m 2_classified 2_search... (7 Replies)
Discussion started by: ManoharMa
7 Replies

2. Solaris

Remove number in file name

Hi , i have a file name with date and time append like test_SEC_AES_V1_T03_2016031404306 i want to remove the date and time after _ and rename to current date and time,can any one please let me know as i tried some options but din't help:( Thanks, Please use code tags as required... (10 Replies)
Discussion started by: caba_jones
10 Replies

3. Shell Programming and Scripting

Remove trailing number

I have some strings such as ABC1 ABC2 TYFASDD12 They will only have letters and numbers. In each case I want to remove the last digit? The lengths will vary. So a hard coded substr won't work. What do I do? if it doesn't end in a number, I don't want to remove any characters. (6 Replies)
Discussion started by: guessingo
6 Replies

4. UNIX for Dummies Questions & Answers

Remove char if not a number

I need to write a BASH script that takes a 2 character string and removes the second character if it is not a digit e.g. If the string is numberical value >9 e.g. string1 = '34' then leave string1 = '34'. However if the string is <10 e.g. string1 = '3X' then remove the second char (which... (7 Replies)
Discussion started by: millsy5
7 Replies

5. Shell Programming and Scripting

How to remove files with different release number?

Hi, I have many data files formatted in "dataName-versionNumber-releaseNumber.location.data" in a directory of Linux CentOS 6.2 system. My directory could have following files for example: graphicData1-1.2.3-2.0.0.mel.au.data graphicData1-1.2.3-2.0.1.mel.au.data... (14 Replies)
Discussion started by: hce
14 Replies

6. Shell Programming and Scripting

script for remove descending order number

hi all i want to remove some descending order number example : 1 100 200 135.00 Gk_wirs 1 1 100 200 136.00 Gk_wirs 50 1 110 210 138.00 Gk_wirs 60 1 100 200 136.00 Gk_wirs 57 ----> how to remove... (6 Replies)
Discussion started by: nithyanandan
6 Replies

7. Shell Programming and Scripting

remove the number from the String

I have string like 20091112_File_Name_40301.txt and i have a set of files in the directory with the same format . i want to write the ksh to rename the file ..... like eg 20091112_File_Name_40301.txt to File_Name.txt 20091112_abc_2343.txt to abc.txt... (6 Replies)
Discussion started by: gavemani
6 Replies

8. AIX

Remove APAR number from aix 5.3

Hi... Can i remove one APAR number from aix5.3.. If it is possible how to do.. Thanks.. (3 Replies)
Discussion started by: sumathi.k
3 Replies

9. Shell Programming and Scripting

remove a large number of user from oracle

Hi on solaris and oracle 10g2, I have number of users created in Oracle, I wonder if I have a list of the usernames will it be possible to remove the users quickly ? I want to keep the users access to system but oracle. some thing like shell script may be ?:confused: I am trying to... (4 Replies)
Discussion started by: upengan78
4 Replies

10. Shell Programming and Scripting

remove a colon and number and leaving the rest

just have a file 1:2333 2:-09393 ]3:45453 4:-09999 5:-09933 6:93939 question is to get output by removing colons as well as number before each colon (in bold) 2333 -09393 45453 -09999 09933 93939 (5 Replies)
Discussion started by: cdfd123
5 Replies
Login or Register to Ask a Question