小编lac*_*991的帖子

如何计算Bash变量中的字符数

如何计算bash变量中的所有字符?例如,如果我有

"stackoverflow"
Run Code Online (Sandbox Code Playgroud)

结果应该是

"13"
Run Code Online (Sandbox Code Playgroud)

linux bash

45
推荐指数
4
解决办法
11万
查看次数

如何grep文件扩展名

我目前正在尝试创建一个脚本,该脚本将grep输入以查看某些内容是否属于某种文件类型(例如zip),尽管文件类型之前的文本可能是任何内容,例如

something.zip
this.zip
that.zip
Run Code Online (Sandbox Code Playgroud)

都属于这个类别.我试图使用通配符grep这些,到目前为止,我已经尝试过这个

grep ".*.zip"
Run Code Online (Sandbox Code Playgroud)

但是每当我这样做时,它会发现.zip文件很好,但是如果在.zip例如之后还有其他字符,它仍会显示输出,.zippppppp或者.zipdsjdskjc仍然会被grep拾取.话虽如此,我应该怎么做才能防止grep显示具有附加字符的匹配.zip

regex bash grep

17
推荐指数
5
解决办法
6万
查看次数

我可以使用相同的命令grep压缩文件和未压缩文件

我正在尝试创建一个脚本来greting位于/ var/log /中的日志文件.我能够grep未压缩的日志或压缩的日志(作为日志轮换的结果)但是无法在一个命令中执行这两个操作(当我尝试这样做时,我得到"二进制文件(标准输入)匹配"),甚至可以做这样的事情吗?谢谢!

logging debian grep

10
推荐指数
2
解决办法
2731
查看次数

如何从bash变量回显/打印特定行

我试图从多行bash变量打印特定行.我发现了以下内容:

while read line; do echo LINE: "$line"; done <<< "$x"
Run Code Online (Sandbox Code Playgroud)

其中x将是变量,但它只是打印出所有行而不是只打印一行(比如说第1行).我怎么能适应这个来打印出一条特定的线而不是所有线呢?(希望避免将变量写入文件)

variables bash debian

8
推荐指数
2
解决办法
2万
查看次数

有没有办法让rsync在开始传输之前执行命令

我正在研究一个脚本,该脚本将用于从远程位置传输文件(使用rsync),然后对检索到的内容执行一些基本操作。

当我最初连接到远程位置(不运行rsync守护程序时,我只是使用rsync来检索文件)时,我被放置在非标准外壳中。为了进入bash shell,我需要输入“ run util bash”。有没有一种方法可以在rsync开始传输文件之前执行“ run util bash”?

如果有办法使用scp / ftp而不是rsync,我可以接受其他建议。

bash shell

4
推荐指数
1
解决办法
4644
查看次数

如何实现某种机制来防止缓冲区溢出

我目前正在研究一个基于C的日志解析器(制作原始基于bash的日志解析器的C版本),我想知道如果有拙劣的输入,我应该如何防止缓冲区溢出,几乎只是一种方式,当内存不足时自动停止程序,我也提供了下面的代码,谢谢!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define _GNU_SOURCE
void main(int argc, char *argv[], char *envp[])
{
  FILE *fd;
  char *name;
  name = getenv("MCEXEC_PLAYERNAME");
  char *filename;
  filename = malloc(sizeof "/home/minecraft/freedonia/playerdata/deathlog-.txt" - 1 +    strlen(name) + 1);
  if (!filename) exit(EXIT_FAILURE);
  sprintf(filename,"/home/minecraft/freedonia/playerdata/deathlog-%s.txt",name);
  char buff[1024];
  if ((fd = fopen(filename, "r")) != NULL)
  {
    fseek(fd, 0, SEEK_SET);

    while(!feof(fd))
    {
      memset(buff, 0x00, 1024);
      fscanf(fd, "%[^\n]\n", buff);
    }
    printf("%s\n", buff);
  }
  else
  printf( "fail" );
}
Run Code Online (Sandbox Code Playgroud)

下面的代码是尝试实现fgets和scanf,但是当我运行程序时,它只是坐在那里而不显示任何输出

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define _GNU_SOURCE
void …
Run Code Online (Sandbox Code Playgroud)

c file-io

3
推荐指数
1
解决办法
186
查看次数

如何从日志文件的内容中删除时间戳

我有一个日志文件,其中日志文件行前面带有以下时间戳格式:

%Y-%m-%d_%H:%M:%S:(最后一个冒号是故意的)

如何使用 sed 删除时间戳(将通过 sed 捕获日志文件)?我对 sed 有一些经验,尽管我不确定最好的方法是什么

编辑:这是标准日志行的样子:

2014-04-12_01:55:12:4391465 被禁止。

删除时间戳后,“12:”之后的所有内容都应保留

谢谢

bash scripting debian

3
推荐指数
1
解决办法
6996
查看次数

在powershell脚本中设置用户环境变量的正确方法是什么

我正在尝试在powershell脚本中安排一个命令来使用Windows调度程序运行.此命令依赖于特定于用户的环境变量,并且由于计划任务无法访问这些变量,因此我决定尝试在powershell脚本本身内部设置变量.

正常的环境变量配置如下所示: 在此输入图像描述

为了在脚本中复制这个,我尝试使用:

$env:DCRCLIFILE = "C:\Users\pzsr7z\Desktop\DCRCLIFILE.txt"
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,当我按照这种方式进行设置时,程序将无法正常工作,即使在使用"普通"用户环境变量运行程序时它完全正常.

使用powershell启动的环境变量执行程序 图片描述

使用"普通"环境变量执行程序: 在此输入图像描述

在powershell脚本中设置环境变量时,我应该做些什么吗?我不确定为什么这不起作用.我已经验证环境变量实际上已经创建,所以它不像powershell命令失败.

powershell

3
推荐指数
2
解决办法
7778
查看次数

当我使用strtok()时,有没有办法挑出个别令牌?

如果我有一个字符串:Hi:my:name:is:lacrosse1991:我怎么能strtok用来检索is(换句话说第四个字段)?这将类似于你在bash中使用cut的方式,我会这样做cut -d ":" -f 4.如果这是一个错误的功能做这样的事情,请让我知道,任何帮助非常感谢,谢谢!(我刚刚开始自学C语言,如果这些是我要求的明显问题,我会提前道歉)

这是我将使用的剪切命令的示例

x=$(echo "$death" | cut -d ':' -f 4)
y=$(echo "$death" | cut -d ':' -f 5)
z=$(echo "$death" | cut -d ':' -f 6)
Run Code Online (Sandbox Code Playgroud)

c strtok

2
推荐指数
1
解决办法
490
查看次数

如何获取此readdir代码示例以搜索其他目录

我目前正在使用一个代码示例,最初设计用于获取参数,然后在当前目录中搜索该参数,我试图通过替换"."来搜索另一个目录(/ dev/shm to exact). " 使用"/ dev/shm"但是当我搜索某些内容时代码没有任何内容*(请注意通配符).通配符搜索在当前目录中正常工作,所以我不认为这是外卡是问题,如果有人可以帮助我,虽然我真的很感激,谢谢!

#include <dirent.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>


static void lookup(const char *arg)
{
    DIR *dirp;
    struct dirent *dp;


    if ((dirp = opendir(".")) == NULL) {
        perror("couldn't open '.'");
        return;
    }


    do {
        errno = 0;
        if ((dp = readdir(dirp)) != NULL) {
            if (strcmp(dp->d_name, arg) != 0)
                continue;


            (void) printf("found %s\n", arg);
            (void) closedir(dirp);
                return;


        }
    } while (dp != NULL);


    if (errno != 0)
        perror("error reading directory");
    else
        (void) printf("failed to …
Run Code Online (Sandbox Code Playgroud)

c file-io glob

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×5

c ×3

debian ×3

file-io ×2

grep ×2

glob ×1

linux ×1

logging ×1

powershell ×1

regex ×1

scripting ×1

shell ×1

strtok ×1

variables ×1