我想将多个文本文件连接到终端中的一个大文件。我知道我可以使用cat命令来做到这一点。但是,我希望每个文件的文件名在该文件的“数据转储”之前。有人知道怎么做吗?

我目前拥有的:

file1.txt = bluemoongoodbeer

file2.txt = awesomepossum

file3.txt = hownowbrowncow

cat file1.txt file2.txt file3.txt

期望的输出:

file1

bluemoongoodbeer

file2

awesomepossum

file3

hownowbrowncow

当前回答

你可以使用这个简单的命令来代替for循环,

ls -ltr | awk '{print $9}' | xargs head

其他回答

X 7.1泡芙

... 对我们中的一些人来说,抓住那些已经提到的头脑的人是有用的:

$ r head
head file*.txt
==> file1.txt <==
xxx
111

==> file2.txt <==
yyy
222
nyuk nyuk nyuk

==> file3.txt <==
zzz
$

我需要读第一行;如上所述,如果你想要超过10行,你必须添加选项(head -9999,等等)。

抱歉,我发表了一个衍生的评论;我没有足够的街头信誉来评论别人的评论。

缺失的awk解是:

$ awk '(FNR==1){print ">> " FILENAME " <<"}1' *

这里有一个非常简单的方法。您说您想cat,这意味着您想查看整个文件。但是你还需要打印文件名。

试试这个

Head -n99999999 *或Head -n99999999 file1.txt file2.txt file3.txt

希望这能有所帮助

我做了一个组合:

Cat /sharedpath/{unique1,unique2,unique3}/filename >新文件

and

Tail -n +1 file1 file2

到这个:

Tail -n +1 /sharedpath/{folder1,folder2,…,folder_n}/文件。扩展名| cat > /sharedpath/newfile

结果是一个newfile,其中包含{}括号中每个子文件夹(unique1,unique2..)的内容,以子文件夹名称分隔。

注意unique1 = folder1

在我的例子中是文件。扩展名在所有子文件夹中具有相同的名称。

我用grep来做类似的事情:

grep "" *.txt

它不会给你一个“标题”,而是给每一行加一个文件名前缀。