我需要从头文件中提取一些信息,我需要从这样的字符串中获取一个站点名称:
0008 0080 LO Institution Name Site Name Here
问题是网站名称也包含空格。我提出的唯一可行的方法是将行保存为字符串,然后在一定数量的字符后将网站名称作为字符串,如下所示:
echo $ {line:50}
但我喜欢更优雅的东西。
我刚注意到它还删除了Institution Name
和Site Name
之间的多个空格。
答案 0 :(得分:0)
如果问题标题代表您的实际问题,并且您想在多个相邻空格后提取文字,
echo "${string##* }"
星号后面有两个空格的将提取一个子串,其中最长的前缀以从变量值中删除的两个空格结束。
如果您需要在管道中执行此操作,则可以使用sed
:
something which produces the output string |
sed 's/.* //'
答案 1 :(得分:0)
我认为 awk 将是最佳选择。它可以轻松提取列。
echo '0008 0080 LO Institution Name Site Name Here'|awk '{ print $7" "$8 }'
您可以打印所需的任何列。 (并做许多其他事情。)
答案 2 :(得分:-1)
如果给定的字符串格式不是每次都改变,那么下面就可以了。
A="0008 0080 LO Institution Name Site Name Here"
echo $A | cut -d " " -f 6