如何在shell脚本中的最后一个下划线之前提取值

smi*_*ra3 0 unix linux shell

我需要在shell脚本中的最后一个下划线之前提取值.

例:

Input:   first_second_third_mmddyyy.csv
Output: first_second_third

Input: first_second_mmddyy.csv
Output: first_second
Run Code Online (Sandbox Code Playgroud)

sat*_*sat 5

你可以用这个sed:

sed 's/_[^_]*$//g' file
Run Code Online (Sandbox Code Playgroud)

测试:

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

$ echo "first_second_mmddyy.csv" | sed 's/_[^_]*$//g'
first_second
Run Code Online (Sandbox Code Playgroud)