Cum să extragi un şir de caractere fără ultima coloană

Created by Alin Brindusescu on 2011-01-24 07:17:41

Am avut nevoie să extrag o partea a unui şir de caracter, în line de comandă Linux fără ultima coloană. Problema era avînd un fişier de tipul:

 
# less test.txt
String_With_4_Columns
String_With_More_Than_4_Columns
With_Less
 
să găsesc o cale simplă de a şterge caracterele de după ultima apariţie a caracterului "_". Chestia asta nu merge cu ajutorul lui cut deoarece numărul de coloane rezultat în urma împărţirii în coloane folosing "_" este variabil şi deci nu se poate specifica numărul coloanelor dorite. Pentru a rezolva problema am folosit awk:
 
# awk -F_ '{ print substr($0, 0, length($0) - (length($NF)==length($0)?0:length($NF) + 1)) }' test.txt
String_With_4
String_With_More_Than_4
With
 

Comments: work in progress!

Search

Ads