Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用Sed提取多个文件中的标题_Linux_Bash_Shell_Sed - Fatal编程技术网

Linux 使用Sed提取多个文件中的标题

Linux 使用Sed提取多个文件中的标题,linux,bash,shell,sed,Linux,Bash,Shell,Sed,我使用head-3从一些需要显示标题数据的文件中提取标题,我这样做: head -3 file1 file2 file3 而且head-3*也可以工作 我原以为sed3file1file2file3可以工作,但它只给出第一个文件的输出,而不给出其他文件的输出。然后我尝试了sed-n'1,2p'file1 file2 file3。同样,只有第一个文件产生任何输出。我还尝试使用通配符sed-n'1,2p'文件名*只对第一个文件的输出产生相同的结果 我读的每一本书似乎都应该有用sed*文件名* 提

我使用
head-3
从一些需要显示标题数据的文件中提取标题,我这样做:

head -3 file1 file2 file3 
而且
head-3*
也可以工作

我原以为sed3file1file2file3可以工作,但它只给出第一个文件的输出,而不给出其他文件的输出。然后我尝试了
sed-n'1,2p'file1 file2 file3
。同样,只有第一个文件产生任何输出。我还尝试使用通配符
sed-n'1,2p'文件名*
只对第一个文件的输出产生相同的结果

我读的每一本书似乎都应该有用<代码>sed*文件名*


提前感谢

假设
GNU-sed
,因为问题被标记为
linux
。从

- 在默认情况下,SED将将命令行上指定的文件视为单个连续长流。这个GNU 扩展允许用户将它们视为单独的文件:范围 地址(如“/abc/,/def/”)不允许跨越多个地址 文件,行号相对于每个文件的开头,$reference 到每个文件的最后一行,以及从R命令调用的文件 在每个文件的开头都会被重绕

例如:

$ cat file1
foo
bar
$ cat file2
123
456

$ sed -n '1p' file1 file2
foo
$ sed -n '3p' file1 file2
123
$ sed -sn '1p' file1 file2
foo
123

当使用
-i
时,将隐含
-s
选项

$ sed -i '1chello' file1 file2
$ cat file1
hello
bar
$ cat file2
hello
456

问题是什么?如果希望每个文件都有自己的地址,请使用
-s
选项。。。使用
-i
时,
-s
选项是隐式的。。。这是GNU sed的行为,其他实现可能不同