2016-11-04 55 views

回答

5

可以使用此sed

sed 's/_[^_]*$//g' file 

測試:

$ echo "first_second_third_mmddyyy.csv" | sed 's/_[^_]*$//g' 
first_second_third 

$ echo "first_second_mmddyy.csv" | sed 's/_[^_]*$//g' 
first_second 
+0

感謝Sir..It的工作 – smisra3

+1

@ smisra3,很高興它工作您。我發現你從來沒有接受任何已經回答的問題的答案。既然你是新來的,如果你的問題已經解決了,請不要忘記標記答案。您可以點擊答案旁邊的複選標記將其從空心切換爲綠色。如果您有任何疑問,請參閱[幫助中心](http://stackoverflow.com/helpcenter/someone-answers)。 – sat

0

也可以使用AWK或如下切割;

awk -F '_' 'NF{NF-=1};1' file 

echo "first_second_third_mmddyyy.csv" | rev | cut -d '_' -f2- | rev 

例如;

$ echo "first_second_third_mmddyyy.csv" | awk -F '_' 'NF{NF-=1};1' 
first second third 

NF是一個變量,包含一行中的字段數。

NF-= 1從NF變量減去一個,除去最後一個字段

1

你可以用shell parameter expansion

while read -r line; do echo "${line%_*}"; done < file 
# ...........................^^^^^^^^^^ 
相關問題