首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >python中的sed系统调用在macOS 10.12.4上生成SOH字符

python中的sed系统调用在macOS 10.12.4上生成SOH字符
EN

Stack Overflow用户
提问于 2017-03-30 12:41:24
回答 1查看 240关注 0票数 0

我试图使用执行sed-sed调用的python脚本替换.h文件中的某些字符。

这是变量\ orig.h中的一行,我希望将其'10‘替换为数组中的值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#define PACKET_DELAY_TIME_A 10

如果我在bash中运行sed-命令,那么。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -E 's/(#define PACKET_DELAY_TIME_A).*/\1 2/' variables\ orig.h > variables.h

此操作非常好,输出结果与预期相同,即用“2”替换“10”。

但是,当我使用python系统调用来执行时,例如,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os

pckt_delay_A = ["1","2","5","10","20"]
command = "sed -E 's/(#define PACKET_DELAY_TIME_A).*/\1 " + pckt_delay_A[1] + "/' variables\ orig.h > variables.h"
os.system(command)

这将产生SOH-字符,而不是预期的'#define PACKET_DELAY_TIME_A‘。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\u0001 2

我的输出文件里。知道是什么原因造成的,以及如何获得预期的输出吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-30 13:10:46

使用原始字符串。对于普通字符串,\1由Python解释,这意味着将一个带有ASCII代码1的字符放入字符串中,而不是传递给shell。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
command = r"sed -E 's/(#define PACKET_DELAY_TIME_A).*/\1 " + pckt_delay_A[1] + r"/' variables\ orig.h > variables.h"

或者,您可以用Python编写代码,使用它的re模块,而不是调用sed

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43127927

复制
相关文章
MacOS与Linux中sed的不同
如果在MacOS中执行sed -i 命令的话,会提示:invalid command code; 改成 sed -i .bak 或者在正则表达式之前加"" (比如sed -i "" 's/ /_/g' 1.csv)就可以了。此外,两者对于\n的处理也不相同。
生信编程日常
2020/04/01
2.2K0
MacOS与Linux中sed的不同
带有-i选项的sed命令在Linux上执行成功,但在MacOS上失败
就地编辑文件(如果提供了后缀,则进行备份),可见参数后缀 SUFFIX 是可选的,即带或者不带这个参数都可以执行。
程序熵
2023/09/25
3760
带有-i选项的sed命令在Linux上执行成功,但在MacOS上失败
switch能否作用在char上,能否作用在byte上,能否作用在string上?
解:switch能作用在char、byte、short、int及其对应的包装类,
JaneYork
2023/10/11
2230
switch能否作用在char上,能否作用在byte上,能否作用在string上?
Python中的字符串介绍(上)
上一章介绍了python中的关键字、变量、输入输出、注释、还有数据类型等概念,接下来这篇文章主要介绍python中字符串的相关笔记。文章只按照我自己觉得重点的知识点去列举,不会列举特别细致的点。
小博测试成长之路
2021/10/13
6450
Python中的字符串介绍(上)
MacOS系统上的堆介绍及利用
0CTF / TCTF2019比赛时出了一道MacOS下的堆利用题目,但没找到文章介绍MacOS上的内存管理及攻击方式,这里以该题为例,简单分享一下之前总结的一些MacOS系统的堆管理及利用思路。
ChaMd5安全团队
2019/05/07
2.1K0
MacOS系统上的堆介绍及利用
macOS:sed -i报错:sed: 1: “xxxxx“: extra characters at the end of p command
在stackoverflow上找到这个帖子《sed command with -i option (in-place editing) works fine on Ubuntu but not Mac》1,总算知道了原因:macOS与linux还是有差异的,这个问题就是macOS与linux之间差异造成的。
10km
2021/12/07
1.6K0
macOS:sed -i报错:sed: 1: “xxxxx“: extra characters at the end of p command
如何在 macOS Sierra (10.12) 和 High Sierra (10.13) 系统上生成 SSH Keys
这个指南将会向你展示如何在 macOS Sierra (10.12) 和 High Sierra (10.13) 上生成和保护 SSH keys。SSH keys 允许不需要密码就登录你的服务器。它们既可以增加便利性,也能增加安全性,可以有效的抵御暴力攻击。
雪梦科技
2020/05/09
1.1K0
MacOS上的Pip和Python升级指南
在MacOS系统上,保持Pip和Python版本的最新状态对于顺利进行Python开发至关重要。通过升级Pip和Python,你可以享受到最新的功能、修复的bug以及提升的开发效率。本文将为你提供在MacOS上升级Pip和Python的详细指南,助你打造更强大的开发环境。
华科云商小徐
2023/09/20
4.7K0
9.4sed(上)
sed工具 sed -n '5'p test.txt sed -n '1,5'p test.txt sed -n '1,$'p test.txt sed -n '/root/'p test.txt sed -n '/^1/'p test.txt sed -n 'in$'p test.txt sed -n '/r..o/'p test.txt sed -n 'oo*'p test.txt sed -e '1'p -e '/111/'p -n test.txt sed介绍 [root@localhost ~]#
运维小白
2018/02/06
7800
如何使用 sed 替换文件中的字符串?
在 Linux 系统中,sed 是一个非常有用的文本处理工具,它可以用于在文件中进行字符串替换操作。sed 是流编辑器(stream editor)的缩写,它可以对文本进行逐行处理,包括查找和替换特定的字符串。本文将详细介绍如何使用 sed 命令在文件中进行字符串替换操作。
网络技术联盟站
2023/06/09
5.5K0
如何使用 sed 替换文件中的字符串?
(30)字符截取命令sed
sed是一种几乎包括在所有UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。
生信real
2020/09/02
1.5K0
在macOS10.12系统上给thea
首先查了一下,cuda只支持Nvida显卡,所以只好放弃了。转而选择gpuarray backend,这个版本还没有release,都是开发版。
py3study
2020/01/02
6680
Python生成字符视频
在之前也写过生成字符视频的文章,但是使用的是命令行窗口输出,效果不是很好,而且存在卡顿的情况。于是我打算直接生成一个mp4的字符视频。大致思路和之前一样:Python20行代码实现视频字符化。
ZackSock
2021/05/18
5730
Python生成字符视频
​1行Python代码,计算程序的运行时间,也可以用在算法和接口的调优上
Python有一个第三方库叫:potime,提供了一个简便的方法,我们一起来看看吧。
程序员晚枫
2022/12/14
6200
​1行Python代码,计算程序的运行时间,也可以用在算法和接口的调优上
Python字符编码(上)
一.文档 #字符 import unicodeata lookup()——接受不区分大小写的标准名称,返回一个 Unicode 字符 name()——接受一个 Unicode 字符,返回大写形式的名称 unicodeata.name('A') snowman.encode('utf-8') #指定字符编码 #验证ASCII def unicode_test(value): import unicodedata     name = unicodedata.name(value)     value2 =
陈不成i
2021/06/18
4340
联邦学习怎样应用在推荐系统中?
说起联邦学习,大家再熟悉不过了,由于其能在数据不移动的前提下协同训练一个全局共享的模型,迅速成为了人工智能安全领域的一个研究热点。推荐系统作为人工智能领域最振奋人心的应用之一,与联邦学习相结合的研究也越发受到工业界和学术界的关注。 最近,中国科学:信息科学 杂志最新综述《基于联邦学习的推荐系统》(以下简称“联邦推荐”)概述了一些联邦学习和推荐系统结合的研究工作,非常适合对联邦学习和推荐系统感兴趣的同学阅读。本文旨在帮助大家快速了解这篇综述,并给想入门联邦研究的同学推荐一些相关的论文。 需要说明的是,联邦推荐
AI科技评论
2022/03/14
1.2K0
sed中的正则匹配
sed很早就支持正则表达式了,这在文件处理中非常有用,以下列出一些常见用法(GNU SED版本)。
生信编程日常
2020/06/29
7.5K0
Python3.7适用在所有操作系统中安装运行。
1、点击[python-3.7.0] 2、点击[解压到] 3、点击[立即解压] 4、点击[python-3.7.0-amd64] 5、点击[以管理员身份运行] 6、点击[Add Python 3.7 to PATH] 7、点击[Customize installation] 8、点击[Next] 9、点击[Install]
裴来凡
2022/05/28
5230
Python3.7适用在所有操作系统中安装运行。
ToB:SaaS要用在成功的生意上
来源:ToBeSaaS 作者:戴珂 ---- ToB的生意困局 如果从2012年的“SaaS元年”算起,中国的ToB已走过七、八年的时间。在这期间美国SaaS公司已创造了近万亿美金的市值;而国内还没有一家真正意义上的SaaS公司上市或者被高价并购。 这个问题会有很多种解释。总体是说,在中国企业环境下做SaaS太难了,我深以为然。 直到与美国同行交流之后才了解,其实在美国做SaaS也很难,甚至比我们还难。 原来,美国SaaS进入的是一个存量市场,行业市场饱和度高得几乎没有缝隙。而SaaS初创公司一方
腾讯SaaS加速器
2020/06/09
4570
macOS 上编译 Dynamips
如果发生错误,可以尝试指定 C 编译器的路径,可用 xcrun 命令找到相应的编译器的路径:
饶文津
2020/06/02
6400

相似问题

macOS 10.12.4上的VirtualBox启动错误

34

无法在MacOS 10.12.4上使用pip安装mysql-python

797

MacOS sera10.12.4上的石墨安装

12

如何在macOS Sierra10.12.4上安装RODBC

15

错误打开终端:MacOS10.12.4上的未知Qt

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文