use*_*114 19 unix linux bash cut token
我正在尝试解析特定目录中的文件名.文件名的格式为:
token1_token2_token3_token(N-1)_token(N).sh
Run Code Online (Sandbox Code Playgroud)
我需要使用分隔符来剪切标记'_',并且除了最后两个标记之外需要使用字符串.在上面的检查输出应该是token1_token2_token3.
令牌数量不固定.我已尝试使用命令-f#-选项cut,但没有找到任何解决方案.有任何想法吗?
yst*_*sth 36
随着削减:
$ echo t1_t2_t3_tn1_tn2.sh | rev | cut -d_ -f3- | rev
t1_t2_t3
Run Code Online (Sandbox Code Playgroud)
rev反转每一行.的3-在-f3-从所述第三字段表示到行结束时(其是通过第三到最后一个字段在非反转文本行的开始).
您可以使用POSIX定义的参数替换:
$ name="t1_t2_t3_tn1_tn2.sh"
$ name=${name%_*_*}
$ echo $name
t1_t2_t3
Run Code Online (Sandbox Code Playgroud)