我需要从头文件中提取一些信息,并且需要从如下字符串中获取站点名称:
0008 0080 LO Institution Name Site Name Here
Run Code Online (Sandbox Code Playgroud)
问题是网站名称也包含空格。我想到的唯一可行的方法是将行保存为字符串,然后在一定数量的字符后将站点名称作为字符串获取,如下所示:
回声 ${行:50}
但我想要更优雅的东西。
我刚刚注意到它还删除了Institution Name和之间的多个空格Site Name。
如果问题标题代表您的实际问题,并且您想提取多个相邻空格后的文本,
echo "${string##* }"
Run Code Online (Sandbox Code Playgroud)
星号后面有两个空格将提取一个子字符串,该子字符串的最长前缀以从变量值中删除的两个空格结尾。
如果您需要在管道中执行此操作,则很容易sed:
something which produces the output string |
sed 's/.* //'
Run Code Online (Sandbox Code Playgroud)