我想在前面打印/打印包含子字符串的字符串,如下所示。 这里,子串我的意思是VIDIOC,这里我要记录的字符串是VIDIOC_S_CTRL作为例子
自:
ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
要:
ALOGI("VIDIOC_G_FMT"); ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
ALOGI("VIDIOC_S_CTRL"); if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
我尝试使用 sed 进行网络搜索,但我无法做到。 有人可以帮忙吗?
答案 0 :(得分:2)
您可以使用反向引用:
sed '/VIDIO/ s/.*\(VIDIO\w*\)/ALOGI("\1"); &/' inputfile
或
sed -r '/VIDIO/ s/.*(VIDIO\w*)/ALOGI("\1"); &/' inputfile
答案 1 :(得分:0)
gawk
- 具体
awk '{match($0,/VIDIO\w*/,a); print "ALOGI(\""a[0]"\");",$0}' input.txt
输出:
ALOGI("VIDIOC_G_FMT"); ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
ALOGI("VIDIOC_S_CTRL"); if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {