unix 相关问题

Unix操作系统是一种通用操作系统,由贝尔实验室于20世纪60年代末开发,现在有各种版本。重要说明:此标记专用于与Unix直接相关的编程问题;一般软件问题应该发送到Unix和Linux Stack Exchange站点或超级用户。

用于线程间通信的邮箱的C++实现

我想知道是否有人以前使用 POSIX 库实现过用于线程间通信的邮箱类。作为参考,我正在寻找类似于 SystemVerilog 中使用的邮箱:http...

回答 3 投票 0

如何在 Unix 系统上编辑二进制文件[已关闭]

在 Windows 计算机上,有许多第三方编辑器可用于编辑二进制文件。 如何在 Unix 系统上编辑二进制文件?

回答 12 投票 0

使用 sed 命令更新 pom.xml 文件中的版本

示例输入: 示例输入: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.in28minutes.microservices</groupId> <artifactId>currency-exchange-service</artifactId> <version>3.0.3</version> <name>currency-exchange-service-docker</name> <description>Demo project for Spring Boot</description> <properties> <java.version>16</java.version> <spring-cloud.version>2020.0.2</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> </dependencies> </project> 预期输出: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.in28minutes.microservices</groupId> <artifactId>currency-exchange-service</artifactId> <version>3.0.4</version> <name>currency-exchange-service-docker</name> <description>Demo project for Spring Boot</description> <properties> <java.version>16</java.version> <spring-cloud.version>2020.0.2</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> </dependencies> </project> 我已经计算了 3.0.4 并使用 var2 变量来存储它。 我正在使用这个命令来更新 sed -i "s/<version>.*<\/version>/<version>$var2<\/version>/" pom.xml 但它正在改变每个版本标签下的版本。 但我需要更改以项目作为父标签的版本标签下的值。 我尝试过 sed -i "s/<project><version>.*<\/version>/<project><version>$var2<\/version>/" pom.xml 但它不起作用。 我的脚本.sh #!/bin/sh var1=$(echo '${project.version}' | mvn help:evaluate | grep -v '^[[]') var2=$(echo "$var1" | awk -F. -v OFS=. '++$NF') sed -i "s/<version>.*<\/version>/<version>$var2<\/version>/" pom.xml echo "$var2" $ xmlstarlet edit --update '//project/version' --value '3.0.4' file.xml <?xml version="1.0"?> <project> <version>3.0.4</version> <dependencies> <dependency> <version>1.2.5.RELEASE</version> </dependency> </dependencies> </project> 这个 sed 应该做: sed "/<version>/s/>.*</>${var2}</" pom.xml <project> <version>3.0.4</version> </project> 它搜索带有 <version> 的行,然后替换 >xxx< with the variable. 之间的数据 使用正则表达式,您可以确保要查找的内容不会太多。 sed -E "/<version>/s/>[^<]+</>${var2}</" pom.xml 如果您需要确保它不会更改除version之后的其他project,您可以使用awk awk -v var=$var2 '/<project>/ {f=1} f && /<version>/ {sub(/>[^<]+</,">"var"<")} 1' pom.xml <project> <version>3.0.4</version> </project> 测试 project 并在下一行更改的 Sed 版本 sed -E '/<project>/!b;n;s/<version>[^<]+</<version>'$var2'</' pom.xml <project> <version>3.0.4</version> </project> xmlstarlet edit -P --inplace --update '/_:project/_:version' --value '3.0.0' pom.xml _:前缀背后的原因是,每个设置了 xmlns 属性的 XML 元素在引用时都应以命名空间为前缀,在提供的 pom.xml 文件的情况下,设置了 xmlns 属性,但命名空间为未指定,这将使 xmlstarlet 回退到默认命名空间,即 _。

回答 3 投票 0

使用 rewind() 和 popen()

我有一个简单的C代码片段如下: #包括 无效主(){ 文件*f; 字符c; f = popen("ls", "r"); while ((c = fgetc(f)) != EOF) { //一些任务 } 快退(f)...

回答 2 投票 0

在Python中使用os.system调用多个命令

我想从我的 python 脚本调用多个命令。 我尝试使用 os.system(),但是,当当前目录更改时我遇到了问题。 例子: os.system("ls -l") 操作系统

回答 9 投票 0

为什么此 shell 脚本中的 for 循环在执行第二次迭代之前执行第一次迭代两次?

我有一个bash脚本: #! usr/bin/env bash # 测试 bash 脚本调用 python 脚本 cd ~/python 对于 ((i = 1; i <= 2; i++)); do python3 test_0$i.py; done cd ~/bash that pulls test_0x.py files ...

回答 1 投票 0

比较Linux中两个不同目录中的文件

一个 shell 脚本,显示两个不同目录中多个文件的差异,还可能创建一个输出文件,包括发现所有不匹配的位置。 健康)状况 文件目录1/文件1

回答 3 投票 0

根据模式清单匹配文件

我想检查某些文件是否与清单文件中声明的模式匹配。因此,例如以下文件 A_cycles.pdf A_filter_passed_vs_occupied.pdf A_grouped_cycle.csv A_grouped_lane.csv

回答 3 投票 0

如何用制表符替换换行符?

我有如下所示的图案 你好 你好 你好 问候 问候语 不再向你问好 我正在尝试使用以下命令用制表符替换所有换行符 sed -e“s_/ _/ _G” 但这不是...

回答 7 投票 0

如何杀死thunar进程?

如果我想杀死该文件管理器的所有实例,我会这样做 基尔图纳尔 这给了我 thunar:未找到进程 但这个 FM 肯定在运行! 同样 ps aux | grep thunar 找不到

回答 2 投票 0

在 C 程序中使用 system("clear") 命令时出现奇怪的输出

我有以下代码 #包括 #包括 #包括 #包括 #包括 #定义尺寸5 int RandomNumInRang...

回答 2 投票 0

Solaris。 xterm显示问题

我通过 SSH 从我的 Linux 计算机连接到 Solaris (10) 服务器。 但是,当我尝试使用“ xterm”打开另一个终端时,它不起作用。 我将 DISPLAY 环境变量设置为 12...

回答 3 投票 0

ncurses 不解释键

我有一个基于诅咒的应用程序(WordGrinder)。我刚刚收到一位用户的错误报告,称他的键盘上的某些按键无法正常工作。经过调查,他是对的。 队列中的钥匙...

回答 4 投票 0

使用管道命令无限读取(2)

我想对 Linux 系统上的 read(2) 行为有一些精确的了解。我正在尝试制作一个外壳,但在读取输入时遇到问题。我做类似的事情 读取(0,BUF,4096); 所以这个...

回答 2 投票 0

Shebang被忽视了? [重复]

我不知道如何更好地描述我刚刚经历的行为。我是从这个答案得出的,因为我正在尝试将文件的内容读入字符串。 我制作了以下脚本

回答 1 投票 0

如何修改栏目时间格式

我有几个文件的一列中包含日期时间,我正在尝试将时间从“%hh.%nn.%ss”更改为“%hh:%nn:%ss”。 困难在于 TIME 列的位置会根据...而变化

回答 1 投票 0

Unix:“M-”指的是什么修饰键(例如 M-C)

我正在尝试在 Nano 中进行区分大小写的搜索。屏幕底部的帮助菜单显示我可以通过输入 M-C 来切换区分大小写。 ^G 获取帮助 ^Y 第一行 ^T 转到行...

回答 3 投票 0

如何将命令输出作为多个参数传递给另一个命令

我想将命令的每个输出作为多个参数传递给第二个命令,例如: grep“模式”输入 返回: 文件1 文件2 文件3 我想复制这些输出,例如: cp 文件1 文件1...

回答 5 投票 0

如何使用awk命令根据匹配和过滤条件打印多行

我正在尝试过滤掉比最新日志早7天的日志,例如,如果日志的最后一部分是2024-02-13,那么2024-02-05上的所有日志都将被删除。 这个例子...

回答 1 投票 0

在 Unix 环境中检测过时的 pid 文件

在 Unix 环境中检测过时的 pid 文件的标准跨平台方法是什么?假设我想终止应用程序的旧实例,但我当然不想破坏不相关的

回答 2 投票 0

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