假设我们有一个
形式的字符串first;second;third;fourth
我想打印
second;third;fourth
我该怎么办?
答案 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。
它与另一个问题非常相似: