标签: cat

大量文件串联

我的目录中有大约 3-4 百万个文件,文件名以type1.txt, type2.txt.(file are 1type1.txt, 1type2.txt,2type2.txt,2type2.txtetc )结尾

现在我想连接所有以 type1.txt 和 type2.txt 结尾的文件。

目前我正在cat *type1.txt > allTtype1.txttype2.txt. 我想保留两个最终输出文件中的顺序,我猜是cat这样做的。但速度太慢了。

请建议一些更快的方法来执行相同的操作。

谢谢,拉维

linux file concatenation cat

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

在 bash 中使用 /dev/random 分配一个具有 10 个字符长的随机字符串的变量?

尝试创建一个 10 个字符的密码并将其分配给一个变量并将其回显到标准输出。

这是我到目前为止创建的脚本,但它不起作用。|我知道还有其他方法可以做到这一点,但当涉及超过 1 个步骤时,我从来没有真正擅长使用(管道)将信息从 1 个操作发送到另一个操作。

#!/bin/bash
tmp_pass=0
if [ $tmp_pass=0 ]; then
        tmp_pass=`cat /dev/random`
        tmp_pass=$(head tmp_pass -c 10 | base64)
        echo $tmp_pass
fi
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要的是这样的例子:

  1. 定义变量(例如 - tmp_pass
  2. 将变量设置为0
  3. 如果变量eq 0,则给它一个新的赋值
  4. 将以下结果分配给变量:
    1. 生成随机字符串
    2. 获取随机字符串的前 20 个字节
    3. 编码为base64
    4. 截取base64的前10个字符

注意:这在我上面的原始脚本中没有显示,但它确实看到它曾经使用echo filename(1:10)或类似的东西来限制它回显第 1 行的前 10 个字符。


我知道这可以用一行完成,但我不确定如何写出来,任何例子将不胜感激。

random variables bash cat

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

使用 cat 将输入文件发送到 java 主类

如果我想使用 cat 命令输入文件 myfile.txt

说“cat myfile.txt > java myMain”

我应该在 myMain 函数中写什么?myfile.txt 是直接存储在 args[0] 中还是有办法引用它?

java file-io program-entry-point cat

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

使用 JSON 文件的名称及其在 bash 中的内容创建一个 JSON 对象

.json我的目录中有几个文件。如果我做:

find . -name '*.json' -exec echo "{\"filename\": \"{}\", \"content\": `cat {}` }," \;
Run Code Online (Sandbox Code Playgroud)

我得到:

{"filename": "./a.json", "content":  },
{"filename": "./b.json", "content":  },
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做:

find . -name '*.json' -exec echo "{\"filename\": \"{}\", \"content\": cat {} }," \;
Run Code Online (Sandbox Code Playgroud)

我得到:

{"filename": "./a.json", "content": cat ./a.json },
{"filename": "./b.json", "content": cat ./b.json },
Run Code Online (Sandbox Code Playgroud)

那么如何正确编辑a.jsonb.json内容cat呢?

顺便说一句,如果我这样做:

find . -name '*.json' -exec cat {} \;
Run Code Online (Sandbox Code Playgroud)

json 文件在控制台中正确打印,所以我知道文件内容是有效的。

bash find echo cat jq

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

我可以在不使用 cat 的情况下将 shell 函数作为管道有条件地“消失”吗?

我有一个 bash 脚本,它从命令管道中生成一些文本。基于命令行选项,我想对输出进行一些验证。对于一个人为的例子......

CHECK_OUTPUT=$1
...
check_output()
{
    if [[ "$CHECK_OUTPUT" != "--check" ]]; then
        # Don't check the output. Passthrough and return.
        cat
        return 0
    fi

    # Check each line exists in the fs root
    while read line; do
        if [[ ! -e "/$line" ]]; then
            echo "Error: /$line does not exist"
            return 1
        fi
        echo "$line"
    done
    return 0
}

ls /usr | grep '^b' | check_output
Run Code Online (Sandbox Code Playgroud)

[编辑] 更好的例子:https : //stackoverflow.com/a/52539364/1888983

这真的很有用,特别是如果我有多个可以成为直通的函数。是的,我可以移动 CHECK_OUTPUT 条件并创建一个带有或不带有 check_output 的管道,但我需要为每个组合编写行以获得更多功能。如果有更好的方法来动态构建管道,我想知道。

问题是“猫的无用使用”。可以避免这种情况并使其check_output …

bash shell pipe cat

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

Cat 所有文件并在字符前添加标签作为文件名

大家好,我有seevral文件,例如

FILE1
>content
AGGAGAjg
GAUGAUGUG
AAG
FILE2
>Againontent
HDHDIHD
DHHDDHK
DH
Run Code Online (Sandbox Code Playgroud)

我想将所有这些文件归为一个独特的使用 cat FILE* >> Unique_file

还要>在每个文件中的之前添加文件名。

那么内容Unique_file将是:

>FILE1_content
AGGAGAjg
GAUGAUGUG
AAG
>FILE2_Againontent
HDHDIHD
DHHDDHK
DH
Run Code Online (Sandbox Code Playgroud)

linux awk sed cat

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

无法在 C 中使用 system() 函数执行“cat”

我有一个函数,它是我的 C 程序中 SIGINT 信号的处理程序,它在执行时只需执行以下命令:

void sigint_handler(int sig)
  {
    system("cat output.txt");
    exit(0);
  }
Run Code Online (Sandbox Code Playgroud)

问题是“cat”命令似乎没有做任何事情。如果我尝试做其他事情而不是“cat”,比如“echo something”,它工作正常,所以我相信问题出在“cat”而不是 system() 函数上。文件“output.txt”位于 C 程序的同一目录中,如果我尝试通过另一个 C 脚本对该文件执行 cat ,它会起作用。此外,如果我尝试从 shell 执行该命令,它会起作用。

我已经检查了从 的返回system("cat output.txt"),它是 0。那么问题是什么?

编辑:文件 output.txt 也在程序中作为 FILE 流(使用fopen())打开,由另一个线程打开,这可能是一个问题吗?

c bash posix system cat

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

用逗号返回语句

这是cat用 C 编写的流行 bash 命令。

我不知道这条线是做什么的:

if (argc==1) return cat(stdin), 0;
Run Code Online (Sandbox Code Playgroud)

我以前从未见过类似的东西。这是完整的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

static void cat(FILE *f)
{
        int     c;

        while (EOF != (c = getc(f)))
        {
                if (EOF == putchar(c))
                {
                        perror("cat");
                        return;
                }
        }
        if (ferror(f))
        {
                perror("cat");
                return;
        }
}

int main(int argc, char **argv)
{
        if (argc==1) return cat(stdin), 0;
        for(int i=1; i<argc; i++)
        {
                if (!strcmp("-", argv[i]))
                {
                        cat(stdin);
                        continue;
                }
                FILE *f = fopen(argv[i], "r");
                if (!f) …
Run Code Online (Sandbox Code Playgroud)

c linux return cat

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

Unix cat命令需要多长时间?

我使用以下命令加入大约20个文件,总大小为40Gb.

cat hda1.ntfs-ptcl-img.gz.* > hda1.ntfs-ptcl-img.gz
Run Code Online (Sandbox Code Playgroud)

只是想知道这个过程通常需要多长时间,因为它已经运行了一段时间.

谢谢.

unix cat

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

我怎样才能更简洁地完成这个"猫"用法?

针对真实用例的开放式问题(有创意!).基本上我想cat(1)现有文件(2)程序的输出和(3)特定的文本位.在管道,回声和重定向之间,我觉得我应该能做得比这更好!

pandoc -t latex -o mydoc.tex mydoc.rst
echo \\end{document} > footer.tex
cat header.tex mydoc.tex footer.tex > fulldoc.tex
Run Code Online (Sandbox Code Playgroud)

shell pipe cat

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

标签 统计

cat ×10

bash ×4

linux ×3

c ×2

pipe ×2

shell ×2

awk ×1

concatenation ×1

echo ×1

file ×1

file-io ×1

find ×1

java ×1

jq ×1

posix ×1

program-entry-point ×1

random ×1

return ×1

sed ×1

system ×1

unix ×1

variables ×1