【linux – 如果文件中的字符串只包含使用Bash在另一个文件中找到的数字,那么如何替换文件中的字符串?】教程文章相关的互联网学习教程文章

linux-用BASH构建简单的计算器【代码】

我从Linux Foundation LFS101x.2的一部分中学习Bash Shell脚本,并且有一个实验室来创建一个简单的Bash计算器.该实验室的详细信息位于:Lab 5 我正在尝试通过以下方式运行脚本:$./bashShellScriptingLab5.sh s 15 5错误消息是:Welcome to Calculator! ./bashShellScriptingLab5.sh: line 39: syntax error near unexpected token `exit' ./bashShellScriptingLab5.sh: line 39: ` exit 0'这是我的bashShellScriptingLab5.sh:#!/b...

linux-如何获取bash中二维数组第二维的大小?【代码】

如果我有arr[0,0]=0; arr[0,1]=1;我尝试echo ${#arr[0,@]}我有bash: 0,@: syntax error: operand expected (error token is "@")获取第二维或arr大小的正确方法是什么?解决方法:BASH不支持多维数组.不过,您可以使用各种techniques模拟它们. 以下定义是相同的: > arr [1,10] =任何> arr [“ 1,10”] =任何 两者都被评估为arr [10] =任何值(感谢chepner):echo ${arr[10]} anything

在python或bash循环中运行linux cat命令【代码】

我在目录中有999,999个文件:member.php\?1member.php\?2...member.php\?99999我想在特定文件的bash或python循环中运行以下cat命令.该命令应该从.php文件中提取用户名,但由于涉及大量文件,因此无法使用.root@alimp5: cat member.php\?* | grep -i '<li class="navbit lastnavbit"><span>' | cut -d'>' -f3 | cut -d'<' -f1 >> users.txt我的解决方案(这种方式很好用):在每个文件上逐步执行上述cat命令,如下所示:root@alimp5:cat...

linux-下载文件并从Bash脚本文件解压缩【代码】

我正在下载文件,然后将其从Bash脚本文件解压缩.#!/bin/sh wget -N http://example.com/file.zip unzip -o file.zip有没有办法检查wget是否实际下载了新文件?例如,如果file.zip的远程版本与本地版本相同,它将不会检索该文件.如果wget实际上检索到一个新文件,我只想解压缩该文件.解决方法:您应该检查返回值和wget的输出,以确定是否已下载文件:out=$(wget -qN 'http://example.com/file.zip' 2>&1) [[ $? -eq 0 && $out ]] && unzip...

linux-在Bash中将文件从2个文本文件移动到位置【代码】

我有一个文本文件中的文件列表,每行一个,还有另一个文本文件,具有用于移动文件的相应位置,每行一个. 如何在bash中执行(文本文件1行1上的mv文件到文本文件2行1上的位置)?解决方法:分别读取每个文件:while read file1; read file2 <&3; domv -- "$file1" "$file2" done < file1.txt 3< file2.txt

linux-Systemd ExecStart中的Bash Brace扩展【代码】

以下测试是在CentOS 7.1中进行的. 在/usr/lib / systemd / system /中创建以下文件test.service[Unit] Description=Test Bash Brace Expansion Wants=network.target After=network.target[Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/bash -c "a='hello world'; echo ${a}"[Install] WantedBy=multi-user.target并执行systemctl daemon-reload; systemctl重新启动测试; systemctl状态测试-l 没有值的输出,因为${a...

linux-在bash脚本中分组时Shell命令不起作用【代码】

我有这个文件:file.txt:4003f0: 48 83 ec 08 sub $0x8,%rsp4003f4: e8 73 00 00 00 callq 40046c我正在尝试从中间提取操作码.首先,我在操作码(sub和callq)之后搜索第一个元素:get_asm_index.awk: BEGIN {i_min = 1000000; }{i = match($0, /[^ :0-9a-fA-F]/)if(i < i_min)i_min = i; }END {print i_min; }之后,我打印操作码:get_hexdump.awk: {i = match($0, /[:]/);print substr($0, i+1, i_min...

linux-AWK匹配在本地工作,但在Debian服务器上不支持bash【代码】

我有以下奇怪的问题.我将尝试使用awk从文本文件中提取字符串,但在服务器上的bash上无法使用. 文本文件看起来像(textfile.txt)dummy text name="formtoken" value="bd54839c3348d1c6ed7ab2c266f8a50b" dummy text我想从文件中获取formtoken值.我的awk语句是:awk '/formtoken/ {match($0,/name="formtoken" value="(.{32})"/,arr); print arr[1]}' < textfile.txt本地命令结果为“ bd54839c3348d1c6ed7ab2c266f8a50b” 在debian服务...

linux-重定向到在bash中存储awk的变量【代码】

cat list.txt1苹果4 30 f2马铃薯2 40 v3橙色5 10 f4颗葡萄10 8 f 脚本:getlist ::if [[ "$@" == *[f]* ]] ; thenawkv1 = $(grep f | awk '{ print $2 $3 }') elseawkv1 = $(awk '{ print $2 $4 $5 }') ficat list.txt | $(awkv1)我有一个变量awkv1,它根据参数’f’存储值.但这是行不通的.运行:: getlist f不会执行任何操作. 它应该像这样工作:如果在参数中传递了’f’,则:: cat list.txt | grep f | awk{print $2 $3}’ 否则:...

Linux-Bash和AWK-在执行多行模式数学时如何将变量传递给AWK?【代码】

我正在使用AWK与模式进行多行匹配.例:awk '/"ip": /,/"id": /'我想在知道ip时将参数传递给AWK,以便它将返回包含指定IP的行.例:awk '/"ip": "$IP"/,/"id": /'有什么方法可以做到? 我努力了:awk '/"ip": "$IP"/,/"id": /' awk '/"ip": "${IP}"/,/"id": /' awk "/\"ip\": \"$IP\"/,/\"id'\": /"我想知道如何在模式中使用这种方法:var="hello"; awk -v a="$var"谢谢. 回答 >已接受,可以在下面找到.>有关如何使匹配更加精确的人的其...

Linux-Bash方法的返回值始终是256模【代码】

我有一个bash脚本方法,可以这样返回输入值.但是,返回值始终是模256的值.我搜索了一段时间,发现this文章说它始终是256模(我已经猜到了),但是没有解释原因.有人可以阐明为什么这样做吗?var=$1 hello () {return $var } helloret=$? echo $ret>>> ./script 300 >>> 44解决方法:返回值限制为1个字节(8位).从整数中取出最低有效字节等效于256模(2 ^ 8).

linux-如何在bash中逐行可移植地读取文本文件【代码】

为了逐行处理bash中的文本文件,我通常实现while循环,如下所示:function doSomething() {local inputFile="$1"local fd=""local line=""exec {fd}<"$inputFile" # open fileecho "Opened ${inputFile} for read using descriptor ${fd}"while IFS='' read -r -u $fd line || [[ -n "$line" ]]; doecho "read = \"$line\""doneexec {fd}<&- # close filereturn 0 }这在我的Linux上有效,但是不幸的是在OSX上无效.对于OSX,我目前必须将...

linux-bash信号陷阱将覆盖其nohup子命令的信号?【代码】

今天,我遇到了一个问题,由Shell脚本启动的程序无法接收INT信号.经过一番调查,我将在下面显示我的发现. 这是我要运行的目标程序,我使用gcc hello.c -o hello.out进行编译.如果您手动启动该程序,则可以通过kill -2来停止它.#include <stdio.h> #include <unistd.h> #include <stdlib.h>int main() {while (1) {printf("--------Hello Wolrd!\n");sleep(2);}return 0; }然后,我有一个Shell脚本,该脚本在启动程序之前会进行一些处理.这...

Linux-bash选择循环不起作用【代码】

我正在尝试学习bash.在一些教程中,我发现了select循环.但是它不能在我的MAC OS或Linux上运行.我的代码是这样的:#!/bin/bash names="Kyle Cartman Stan Quit" PS3="Select character: " select name in $namesdoecho "name="$name done我使用./test.sh来调用该程序及其结果,如下所示:1) Kyle 2) Cartman 3) Stan 4) Quit Select character: Kyle name= Select character: Stan name= Select character: 似乎无法检测到我的输入.有...

如何在Alpine Linux中使用bash脚本?【代码】

我对使用wait-for-it使用基于Alpine Linux发行版的映像在Docker-Compose中使一项服务等待另一项感兴趣. 但是,如果我克隆“等待”存储库并添加以下Dockerfile,FROM alpine RUN apk --update add bash COPY wait-for-it.sh wait-for-it.sh CMD ["./wait-for-it.sh", "www.google.com:80"]然后我使用docker build –tag waitforit来构建它.其次是docker run waitforit,但我收到此错误消息:timeout: can't execute '15': No such file...