bash中获取多个空格后的字符串

Ren*_*nat 3 string bash

我需要从头文件中提取一些信息,并且需要从如下字符串中获取站点名称:

0008 0080 LO Institution Name                 Site Name Here
Run Code Online (Sandbox Code Playgroud)

问题是网站名称也包含空格。我想到的唯一可行的方法是将行保存为字符串,然后在一定数量的字符后将站点名称作为字符串获取,如下所示:

回声 ${行:50}

但我想要更优雅的东西。

我刚刚注意到它还删除了Institution Name和之间的多个空格Site Name

tri*_*eee 5

如果问题标题代表您的实际问题,并且您想提取多个相邻空格后的文本,

echo "${string##*  }"
Run Code Online (Sandbox Code Playgroud)

星号后面有两个空格将提取一个子字符串,该子字符串的最长前缀以从变量值中删除的两个空格结尾。

如果您需要在管道中执行此操作,则很容易sed

something which produces the output string |
sed 's/.*  //'
Run Code Online (Sandbox Code Playgroud)