我有这个字符串:
data="week 50; data; data; data; data"
我想通过使用 sed 从其中删除星期部分,以便我得到:数据;数据; 数据; 数据我想出了这个但显然不起作用,知道为什么吗?错误的规则在哪里?
代码:
echo ${data} | sed '/%week.*%;/s/%week.*%;//'
雪儿
这应该足够了:
echo ${data} | sed 's/week[^;]*;//'
输出:
data; data; data; data
这匹配week
plus up to 并包括下一个分号 ( [^;]*;
) 并将其删除。
如果您还想删除多余的空间,请执行以下操作:
echo ${data} | sed 's/week[^;]*; *//'
您真的要删除包含以“周”开头的文本的分号分隔字段,还是真的只想删除第一个字段?考虑:
$ echo "week 50; data; data; data; data" | cut -d\; -f2-
data; data; data; data
$ echo "week 50; data; data; data; data" | sed 's/[^;]*;//'
data; data; data; data