我如何在bash中拆分以下字符串

时间:2011-10-29 18:58:57

标签: string bash split

假设我们有一个

形式的字符串
first;second;third;fourth

我想打印

second;third;fourth

我该怎么办?

5 个答案:

答案 0 :(得分:3)

在需求行之间进行读取,如果要在第一个分号后打印所有内容,我将使用POSIX标准expr实用程序。

expr "first;second;third;fourth" : '[^;]*;\(.*\)'

答案 1 :(得分:3)

使用参数替换(匹配开始;删除最短部分):

str="first;second;third;fourth"

echo "${str#*;}"

答案 2 :(得分:3)

cut命令可以很好地完成这个任务:

echo "first;second;third;forth" | cut -d';' -f2-

答案 3 :(得分:1)

    $ v="first;second;third;fourth"
    $ echo ${v#first;}
    second;third;fourth
    $ q=${v#*;}
    $ echo $q

答案 4 :(得分:1)

echo "first;second;thrid;fourth" | awk -F";" '{print substr($0,index($0,$2))}'

很多这些答案都有效,我认为cut可能是最好的解决方案,但它是一个缓慢的夜晚所以我在行尾添加了另一个打印字段2。

它与另一个问题非常相似:

Print Field 'N' to End of Line