标签: cat

禁用cat命令

假设我有以下功能:

## Just an example
f = function() { 
  for(i in 1:10000)
      cat(i)
  return(1)
}
Run Code Online (Sandbox Code Playgroud)

当我打电话f()有一种方法可以停止cat打印到屏幕上(无论如何都不改变功能)?

这个问题背后的原因

我的学生上传他们的R文件.然后我运行脚本并检查它们是否正确.每隔一段时间,学生就会离开cat指挥部.当它处于长时间的循环中时,这尤其令人恼火

r cat

14
推荐指数
2
解决办法
3280
查看次数

在文件中打印单行的最快方法

我必须从一个大文件(1500000行)中获取一个特定的行,在多个文件的循环中多次,我问自己什么是最好的选择(在性能方面).有很多方法可以做到这一点,我男子气概使用这些2

cat ${file} | head -1
Run Code Online (Sandbox Code Playgroud)

要么

cat ${file} | sed -n '1p'
Run Code Online (Sandbox Code Playgroud)

我找不到这个问题的答案,他们只获取第一行或两者之一(或两者)首先打开整个文件,然后获取第1行?

bash benchmarking sed head cat

14
推荐指数
3
解决办法
3万
查看次数

bash cat将多个文件内容转换为没有换行符的单个字符串

我得到一些名称以eg_开头的文件.并且每个只包含一行

eg_01.txt:@china:129.00

eg_02.txt @uk:219.98

eg_03.txt @USA:341.90

......

我期待将它们插入一行,通过URL发送,如:@china:129.00@uk:219.98@USA:341.90

我用echo cat eg_*

它给我输出看起来像一个字符串,但它实际上包含新行:"@ china:129.00

@uk:219.98 @USA:341.90"

有没有其他方法我可以构建预期和摆脱新线甚至空间的字符串?只有猫足够做到这一点?

提前致谢

bash file cat

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

与Linux的"cat"相比,为什么我的"cat"函数与系统调用相比较慢?

我在C语言中使用系统调用(打开,读取和写入)来完成此功能,以模拟Linux系统中的"cat"功能,并且它比实际的慢...

我使用与真正的"猫"相同的缓冲区大小并使用"strace"我认为它正在进行相同数量的系统调用.但是我的"猫"的输出比真正的"猫"慢了一点.

这是我的代码:

#define BUFSIZ 32768

int sysWriteBuffer(int fdout, char *buffer, ssize_t readBytes) {
    ssize_t writtenBytes = 0;

    while(writtenBytes < readBytes) {
        writtenBytes += write(fdout,
            buffer + writtenBytes, readBytes - writtenBytes);
        if(writtenBytes == -1) {
            return -1;
        }
    }

    return 0;
}

int catPrint(int fdin, int fdout) {
    char buffer[BUFSIZ];
    ssize_t readBytes;

    do {
        readBytes = read(fdin, buffer, BUFSIZ);

        if(readBytes == -1) {
            return -1;
        }

        if(sysWriteBuffer(fdout, buffer, readBytes) == -1) {
            return -1;
        }
    } while(readBytes > 0);

    return …
Run Code Online (Sandbox Code Playgroud)

c linux system-calls cat

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

在Linux上快速连接多个文件

我正在使用Python多处理为每个进程生成一个临时输出文件.它们的大小可以是几GB,我可以制作几十个.这些临时文件需要合并以形成所需的输出,这是证明是瓶颈(和并行杀手)的步骤.是否有一个Linux工具可以通过修改文件系统元数据而不是实际复制内容来创建连接文件?只要它适用于我可以接受的任何Linux系统.但是文件系统特定的解决方案不会有太大帮助.

我不是OS或CS的训练,但在理论上似乎应该有可能创造一个新的inode并复制了从我想从复制文件的inode的inode的指针结构,然后取消与这些索引节点.是否有任何实用程序可以做到这一点?考虑到经过深思熟虑的unix实用程序的过多,我完全可以预料到它,但找不到任何东西.因此我的问题是关于SO的.文件系统位于块设备上,实际上是硬盘,以防这些信息很重要.我没有信心自己编写这个,因为我以前从未做过任何系统级编程,所以任何指针(对C/Python代码的反转)都会非常有用.

linux parallel-processing copy cat

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

如何将标准输入重定向到Windows命令行中的文件?

在Unix上我会做类似的事情:

cat > file.txt
Run Code Online (Sandbox Code Playgroud)

如何在Windows命令提示符或批处理文件中执行此操作?

编辑:基本上,我正在寻找cat没有参数的功能(它从stdin读取并将其吐回到stdout).

stdin cmd batch-file cat

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

shell - cat - 将文件内容合并到一个大文件中

我正在尝试使用bash将文件列表(超过1K)的内容合并到一个大文件中.

我尝试了以下cat命令:

cat * >> bigfile.txt
Run Code Online (Sandbox Code Playgroud)

但是这个命令做的是合并所有东西,包括已经合并的东西.

例如file1.txt

content1
Run Code Online (Sandbox Code Playgroud)

FILE2.TXT

content2
Run Code Online (Sandbox Code Playgroud)

file3.txt

content3
Run Code Online (Sandbox Code Playgroud)

file4.txt

content4
Run Code Online (Sandbox Code Playgroud)

bigfile.txt

content1
content2
content3
content2
content3
content4
content2
Run Code Online (Sandbox Code Playgroud)

但我想

content1
content2
content3
content4
Run Code Online (Sandbox Code Playgroud)

在.txt文件中

另一种方式是cat file1.txt file2.txt ...等等......但我不能超过1k文件!

感谢您的支持!

shell cat

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

如何在Linux中制作'cat'来解释控制字符

请考虑以下echo命令:

 echo -e "at\r"
Run Code Online (Sandbox Code Playgroud)

at在命令行上产生输出,即\ r \n特殊字符已被解释.我想用文件中的一些文本做同样的事情.假设完全相同的序列

at\r
Run Code Online (Sandbox Code Playgroud)

写入一个名为的文件at.txt,然后我想在终端上显示它.但

cat at.txt
Run Code Online (Sandbox Code Playgroud)

给出输出

at\r
Run Code Online (Sandbox Code Playgroud)

什么不是我想要的.我希望解释特殊序列\ r \n,而不仅仅是在终端上打印.有人有什么想法?

谢谢Alex

linux escaping echo cat

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

R:一种颜色很多的猫

我想知道在使用cat命令或类似命令显示文本时是否可以指定颜色选项.我问的原因是因为我已经设置了具有我正在进行的模拟的交互式反馈系统,并且希望向显示器提供更多信息,因为正在处理需要数小时运行的模拟.

r colors cat

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

在bash脚本循环中打印cat语句的输出

我正在尝试为来自cat命令的每一行执行命令.我的基础是我从供应商处获得的示例代码.

这是脚本:

for tbl in 'cat /tmp/tables'
do
   echo $tbl
done
Run Code Online (Sandbox Code Playgroud)

所以我期待输出是文件中的每一行.相反,我得到了这个:

cat
/tmp/tables
Run Code Online (Sandbox Code Playgroud)

这显然不是我想要的.

我将用一个与数据库连接的实际命令替换echo.

任何帮助纠正这一点将不胜感激.

linux bash for-loop cat

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

标签 统计

cat ×10

linux ×4

bash ×3

r ×2

batch-file ×1

benchmarking ×1

c ×1

cmd ×1

colors ×1

copy ×1

echo ×1

escaping ×1

file ×1

for-loop ×1

head ×1

parallel-processing ×1

sed ×1

shell ×1

stdin ×1

system-calls ×1