我需要在shell脚本中的最后一个下划线之前提取值。
示例:
Input: first_second_third_mmddyyy.csv
Output: first_second_third
Input: first_second_mmddyy.csv
Output: first_second
答案 0 :(得分: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
答案 1 :(得分:1)
您可以使用shell parameter expansion:
while read -r line; do echo "${line%_*}"; done < file
# ...........................^^^^^^^^^^
答案 2 :(得分:0)
你也可以使用awk或cut如下;
$('#ReviewBox span:contains("By:")').each(function(){
$(this).html($(this).html().split(/[/(\)]/g).join(""));
});
例如
awk -F '_' 'NF{NF-=1};1' file
echo "first_second_third_mmddyyy.csv" | rev | cut -d '_' -f2- | rev
NF是一个包含一行中字段数的变量。
NF- = 1从NF变量中减去1,以删除最后一个字段