当前位置: 首页 > news >正文

awk引号转义问题

这是我在终端运行的脚本:
for ib1 in $(seq 0 999);do ibstr=$(printf sample52-%d $ib1);calculate_rmsd --reorder Motif52.pdb ${ibstr}.pdb | awk "{printf "%d %8f\n", $ib1, $0}" >> sample52_hotspots; done
但是报错:
BrokenPipeError: [Errno 32] Broken pipe
awk: cmd. line:1: {printf %d
awk: cmd. line:1:         ^ syntax error
awk: cmd. line:1: {printf %d
awk: cmd. line:1:           ^ unexpected newline or end of string
请问是为什么?

这个错误可能是由于在AWK命令中的双引号未正确转义,导致它被Shell截断,引起了BrokenPipeError。为了解决这个问题,你可以在Shell脚本中使用单引号来包含AWK命令,确保AWK命令中的双引号不被Shell解释。
以下是修正后的Shell脚本:

for ib1 in $(seq 0 999); doibstr=$(printf sample52-%d $ib1)calculate_rmsd --reorder Motif52.pdb ${ibstr}.pdb | awk '{printf "%d %8f\n", '$ib1', $0}' >> sample52_hotspots
done

主要的更改是将AWK命令的双引号替换为单引号,并将$ib1直接插入到Shell的命令行中,以确保Shell不会在AWK命令中截断。这应该能够解决你遇到的问题。

http://www.lryc.cn/news/429173.html

相关文章:

  • C语言典型例题46
  • 【目标检测】AGMF-Net:遥感目标检测的无注意力全局多尺度融合网络
  • 2007-2022年上市公司资源节约数据
  • onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】
  • VAuditDemo安装漏洞
  • 算法学习-2024.8.16
  • ansible环境搭建
  • 在线陪玩App小程序源码开发:技术挑战与解决方案
  • iOS profiles文件过期如何更新
  • C/C++|C++标准库 string 流之std::ostringstream 和 std::istringstream 流
  • Java-Redis
  • requests快速入门
  • 企业高性能web服务器——Nginx
  • FreeSWITCH Java ESL Client Demo
  • 手摸手系列之Linux下根据自己的jdk包构建docker镜像
  • tomcat相关
  • 20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动
  • 服务优雅上下线优雅停机
  • 什么是生信分析?深入探讨生物信息学的技术、方法与广泛应用
  • JavaScript判断数组是否包含某个值
  • C# - 如何在Windows系统中通过C#添加新的PATH条目至系统和用户环境变量
  • Unity | Shader基础知识(第二十二集:两次渲染)
  • 鸿蒙Harmony实战开发:Arkts构造函数
  • @vueuse/core使用useColorMode实现主题颜色切换
  • 生信分析入门:从基础知识到实践操作的全方位指南
  • 【STM32 FreeRTOS】内存管理
  • vue3+vite+cesium配置参考
  • WEB应用服务器TOMCAT
  • maven打包jar后运行提示“没有主清单属性”问题的几种解决方案
  • 计算机毕业设计选题推荐-民宿可视化分析-Python爬虫-随机森林算法