Questions tagged «cat»

cat是标准Unix实用程序,用于连接文件或在标准输出上打印特定文件。

1
OS X,bash:较少用于打开文件描述符,而cat不
在我正在使用的bash脚本中(必须在Ubuntu和OS X上运行),我需要将数百个命令的输出重定向到文件。 与其附加&>...到所有这些,不如做 exec 9>&1 exec 5<>/tmp/some-file.txt exec 1>&5 到目前为止,一切顺利,但是在所有这些命令的中间,我需要读取到目前为止已编写的所有内容,同时保持文件描述符处于打开状态。 现在,在Ubuntu上,我可以做 cat /dev/fd/5 要么 tee </dev/fd/5 但是在OS X上,什么也没打印(命令立即退出)。 但是,使用lessI可以看到两者的文件内容。 我可以通过使用以下命令来达到上述效果(在两个操作系统上均有效) less /dev/fd/5 | tee 但这似乎是一个hack。 那么,为什么less显然可以看到catOS X上无法显示的内容?(或者所有BSD后代都受到影响吗?) 还是我做错了什么?

4
如何交错两个或多个文件的行?
我试图将2个文件输出到单个文件中。我试过下面的命令: cat file1 file2 但是这里file2数据附加到file1。 我需要的是file1第一行,然后是file2第一行,file1第二行,然后是file2第二行,等等。 谁能告诉我如何以一种简单的方式做到这一点?

1
如何使用cat将变量回显到文件中?
我有这样的简单脚本: #!/bin/bash BOO=bla-bla-bla cat > ./Makefile <<'EOF' Hello INCLUDES := -I/data/opt/include/ -Ideps/ -I$BOO/include EOF 但是它输出到文件中: Hello INCLUDES := -I/data/opt/include/ -Ideps/ -I$BOO/include 如何cat使用我的变量值,而不是该字符串中的名称?

2
怪异的控制行为
我可以cat做为一个非常简单的文本编辑器cat > foo.txt。 如果我输入: bar baz 然后按ctrl+ D,现在看起来像这样: $ cat > foo.txt bar baz^D 光标放在^。如果再按一次,该文件将被保存。但是,如果我按其他任何键(可以,也许什么也不是,但大多数都可以),我将继续编辑文件。 这是正常行为吗?

6
使用猫通配符打印强制换行
我想在bash中使用带有通配符的cat以便将多个小文件(每个文件是一个句子)打印到标准输出。但是,单独的文件内容不是用换行符分隔的,为了方便阅读,我希望这样做。 如何在此命令中添加某种文件分隔符?

2
将变量传递给使用'EOF'的bash脚本,并将该变量视为文字。
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 5年前关闭。 在此脚本中,我最终将“ $ 1”保存到/ test文件中。 #!/bin/bash cat > /test << 'EOF' $1 EOF 事实是..我需要保持 'EOF' 为'EOF',因为我的论点($ 1)包含美元符号。 但我需要保存该参数而不是保存$ 1

2
在图像上使用猫之后会产生什么?
假设有人创建了一个像这样的文件: touch myFile 您可以使用vim或其他内容在其中输入一些文本,然后将cat myFile其吐出到终端中。 现在,当我在任何图像上使用猫时会发生什么?说, cat myPNG.png 我只是一堆垃圾。它只是让我考虑该cat命令正在尝试执行的操作,以及所有这些“垃圾”来自何处。只是好奇。
9 files  binary  cat 

2
为什么在二进制文件上使用cat会使终端混乱?
如果我cat正确理解手册: 连接文件并在标准输出上打印 cat将文件作为参数并将其打印在标准输出上。 我没有得到的是如果使用以下命令: cat img.png > copy.png 我将获得2个相同的png文件,如果我只是 cat img.png 我很有可能会弄乱我的终端并误解我键入的内容。 那怎么可能 二进制值仍然是二进制数据。为什么它不能简单地显示一系列0和1或这些二进制数据的ASCII解释或终端中的编码是什么? 是否可以通过cat打开包含奇怪字符的文本文件来实现此行为? 是否应该实现一种防止这种行为的机制,例如try {} catch {}语句?
8 terminal  cat  binary 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.