scripting 相关问题

脚本编写是一种编程形式,通常以低正式性,松散类型和不需要显式编译为特征。有许多脚本语言,它们用于各种场景 - 命令行应用程序,GUI,服务器端应用程序,扩展模块。

如何在 ImHex 的模式语言中包含库文件?

我刚刚开始使用 ImHex 的模式语言,所以请原谅我这个问题非常基础。 我想将加载的文件中的数据读取到用模式语言编写的脚本中。在

回答 1 投票 0

如何解析文件列表以仅获取 Python 中的文件名?

假设我正在使用 Python 的 ftplib 从 FTP 服务器检索日志文件列表。我将如何解析该文件列表以仅获取列表中的文件名(最后一列)?请参阅链接

回答 8 投票 0

如何处理文件并用行号替换模式

所以,我正在尝试设计一个小程序,我计划使用一个配置文件并将 ID 作为行号。这是一个小示例 .conf 文件: ID=_PATTERN_ 状态=窗口 目录=_代码 地理=120...

回答 1 投票 0

将 bash 脚本参数不变地传递给子进程

我想编写一个简单的 bash 脚本来充当可执行文件的包装器。如何将脚本接收到的所有参数传递给可执行文件?我试过 /该/exe $@ 但这不起作用

回答 3 投票 0

google 表格活动单元格突出显示并取消突出显示您对清除代码中单元格格式的担忧

一旦活动单元格移动到花药单元格,活动单元格将突出显示工作表其余部分上的匹配单元格,然后旧的突出显示将返回正常,新的单元格匹配将突出显示,并在 scr 中告诉我...

回答 1 投票 0

我正在尝试编写一个 ps 脚本,以静默方式运行目录中的所有 .exe

我正在尝试编写一个脚本来运行名为“C:\drivers”的目录中的所有 .exe 文件 我当前的脚本 $exe =“*.exe” $exelist = get-childitem "C:\drivers\*.ex...

回答 1 投票 0

使用 Solar Put 运行身份验证后脚本,该脚本在服务器上执行脚本

我想使用 Solar Putty 的功能来运行身份验证后脚本。 目前,我创建了一个简单的 sudo 脚本,称为“sudo -iu flanger”,该脚本存储在外部 .sh 中...

回答 1 投票 0

排除 sed /START/,/END/

考虑输入: =秒1= 某行 其他线 富 酒吧=巴兹 =秒2= c=baz 如果我只想处理 =sec1= 我可以通过以下方式注释掉该部分: sed -e '/=sec1=/,/=[a-z]*=/s:^:#:' ...

回答 6 投票 0

Bash 脚本 - If Else 语句计算结果为 TRUE

我想就我编写的脚本遇到的这个特殊问题寻求您的建议。 它具有单模式(检查 1 个服务器)或多模式(您可以将其指向文本文件)

回答 1 投票 0

将 Python 变量传递到 Powershell 脚本

我希望在不使用参数的情况下将 Python 脚本中的变量传递到 Powershell 脚本的变量中。 var_pass_test.py 导入子进程、系统 setup_script = 'C:\Users\user\Desktop\...

回答 2 投票 0

我尝试用'LocalPlayer'索引nil,我该如何修复它?

我目前正在创建一个 roblox 模拟器,但我无法克服这个问题,因为我是一个非常没有经验的程序员。希望有经验的朋友帮忙解答一下,谢谢! 本地玩家=游戏:GetService...

回答 1 投票 0

在断言中使用运算符的问题

我正在 FrameMaker 中工作,并尝试使用脚本从文档术语表中提取定义。我的前瞻断言遇到了问题,我似乎无法排序。词汇表条目...

回答 1 投票 0

用另一个文件的内容替换文件中的分隔文本块

我需要编写一个简单的脚本,将配置文件中的文本块替换为另一个文件的内容。 我们假设有以下简化文件: 服务器.xml 我需要编写一个简单的脚本,将配置文件中的文本块替换为另一个文件的内容。 我们假设有以下简化文件: server.xml <?xml version='1.0' encoding='UTF-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector port="80" protocol="HTTP/1.1"/> <Engine name="Catalina" defaultHost="localhost"> <!-- BEGIN realm --> <sometags/> <sometags/> <!-- END realm --> <Host name="localhost" appBase="webapps"/> </Engine> </Service> </Server> realm.xml <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> 我想运行一个脚本并让 realm.xml 替换 <!-- BEGIN realm --> 和 <!-- END realm --> 行之间的内容。如果 realm.xml 发生变化,那么每当脚本再次运行时,它都会再次用 realm.xml 的新内容替换这些行。这旨在在领域不同的多个安装上启动服务时在 /etc/init.d/tomcat 中运行。 我不太确定如何简单地使用 awk 或 sed 来做到这一点。 尝试一下: sed -i -ne '/<!-- BEGIN realm -->/ {p; r realm.xml' -e ':a; n; /<!-- END realm -->/ {p; b}; ba}; p' server.xml TOTAL_LINES=`cat server.xml | wc -l` BEGIN_LINE=`grep -n -e '<!-- BEGIN realm -->' server.xml | cut -d : -f 1` END_LINE=`grep -n -e '<!-- END realm -->' server.xml | cut -d : -f 1` TAIL_LINES=$(($TOTAL_LINES-$END_LINE)) head -n $BEGIN_LINE server.xml > server2.xml cat realm.xml > server2.xml tail -n $TAIL_LINES server.xml > server2.xml (好吧,这不使用 awk 或 sed...我认为这不是唯一的要求:-) 你可以使用awk awk 'FNR==NR{ _[++d]=$0;next} /BEGIN realm/{ print for(i=1;i<=d;i++){ print _[i] } f=1;next } /END realm/{f=0}!f' realm.xml server.xml > temp && mv temp server.xml realm.xml 作为第一个文件传递给 awk。 FNR==NR 表示获取传入的第一个文件的记录并存储到变量_。一旦 FNR!=NR,awk 将处理下一个文件。如果 awk 找到 /BEGIN realm/,则打印 BEGIN realm 行,然后打印 _ 中存储的内容。通过将标志 (f) 设置为 1,在检测到 BEGIN realm 之前,不会打印 /END realm/ 之后的其余行。 我创建的这个小片段怎么样: sed -n \ -e "1,/<\!-- BEGIN realm -->/ p" \ -e"/<\!-- END realm -->/,$ p" \ -e "/<\!-- BEGIN realm -->/ r realm.xml" \ server.xml 第一个命令打印到 <!- BEGIN realm --> 的行,第二个命令打印从 <!-- END realm --> 开始的行,第三个命令将文本附加到文件“realm.xml”中。如果我可以简化删除 <!- BEGIN realm --> 和 <!-- END realm --> 之间的线而不删除标记线,那就太简单了。而且可以用 sed 来完成inplace!!! 您还可以使用 ed 命令(参见 http://wiki.bash-hackers.org/howto/edit-ed): cat <<-'EOF' | sed -e 's/^ *//' -e 's/ *$//' | ed -s server.xml H /BEGIN realm/i . /BEGIN realm/+1,/END realm/-1d .-1r realm.xml wq EOF 我遇到了同样的需求(因此找到了这个问题)。在使用 sed 和 awk 太久之后,我最终意识到使用像 Python 这样现代的、可读的、可理解的、广泛使用的语言并没有什么问题: python <<EOF import os, sys, re fname = 'server.xml' os.rename(fname, fname + '.orig') with open(fname + '.orig', 'r') as fin, open(fname, 'w') as fout: data = fin.read() data = re.sub(r'(<!-- BEGIN realm -->).*?(<!-- END realm -->)', r'\1\n' + 'insert whatever you want here\n' + r'\2\n', data, flags=re.DOTALL) fout.write(data) EOF 我认为 sed 和 awk 已经走到了尽头。它们曾经很有用,但现在很少有人在没有文件帮助的情况下能够阅读或写作。 (来源:网络) 我无法在 OS X 上轻松获得 Dennis 解决方案(其 BSD sed 略有不同)。我发现了另一个可以在 Linux 和 OS X 上工作的解决方案(我有一个混合环境)。 superuser.com上的原始版本仅适用于Linux,这里我修复了它: lead='^<!-- BEGIN realm -->$' tail='^<!-- END realm -->' sed -e '/'"$lead"'/,/'"$tail"'/{ /'"$lead"'/{p; r realm.xml' -e' }; /'"$tail"'/p; d;} ' server.xml 这里是 Dennis 代码的一个版本,也可以在 OS X 上运行(使用多行): sed -ne '/'"$lead"'/ { p r realm.xml :a n /'"$tail"'/ { p b } ba } p' server.xml 这两个代码都在标准输出上打印输出。使用重定向,或者要替换内联文件,请添加选项“-i”(在 Linux 上)或“-i ""”(在 BSD/OS X 上)。 简单的 sed 和稍微复杂的 awk 解决方案: sed ' /<!-- END realm/,$b /<!-- BEGIN realm/r realm.xml 1,//!d ' server.xml 一旦看到终点线,只需将线穿过 当看到开始行时,追加新内容 如果超出开始行(但不是结束行),则删除 awk ' NR==FNR { new = new $0 RS; next } /<!-- END realm -->/ { $0 = new $0; skip = 0 } !skip /<!-- BEGIN realm -->/ { skip = 1 } ' realm.xml server.xml skip 开始未设置 加载新内容 当我们看到结束行时,添加新内容并更改状态(取消设置skip) 如果未设置skip则打印行 当看到开始线时,更改状态(设置skip)

回答 8 投票 0

KSH 中变量的范围

我编写了一个示例 KornShell 函数来分割字符串,将其放入数组中,然后打印出值。 代码如下 #!/usr/bin/ksh 分割字符串() { 字符串=“[email protected];xyz@

回答 2 投票 0

使用basename dirname分割文件路径并运行run

我有一个通用文件路径 - /home/aa/bb/cc/d.txt 并想要编写类似这样的脚本 - 所以在脚本中,一件事就是它采用 /path/to/testcase/d.txt 并将其分成 工作_迪...

回答 1 投票 0

理解批处理文件有多重要[关闭]

因此,在自动化这些无聊的事情中,我们学习如何创建批处理文件以从 windows run-R 运行脚本。只是想知道这有多重要,因为我不明白。难道是……

回答 1 投票 0

无法在 Cygwin 中将 shell 脚本作为 KornShell 脚本执行

我很少接触shell脚本,我们有另一个部门编写它们,所以我对编写它们有了解,但没有经验。然而,它们对于我的问题来说似乎毫无用处。 我是...

回答 3 投票 0

将文件上传到共享点的Python脚本

我正在使用下面的脚本上传到我在这里找到的共享点。 如何授权 Python 脚本上传到 SharePoint Online? 。我在 azure 中正确创建了一个应用程序,我能够得到...

回答 1 投票 0

如何检查PostgreSQL子表中的数据是否全部复制成功

作为 PostgreSQL 的初学者,我正在编写一个 shell 脚本来验证所有数据是否已复制到子表中。然后我将进行其他活动。如果尚未复制所有数据,则

回答 2 投票 0

Powershell - 使用 Get-ChildItem 获取简单的文件列表(包含其路径)

我想要一个 Powershell 脚本,它输出通过递归找到的文件,并在一定时间后修改日期。 目前,它是这样的单个命令; 获取子项-递归|哪里-Obj...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.