Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
Bash 在GNU sed中-s选项是什么意思?_Bash_Sed - Fatal编程技术网

Bash 在GNU sed中-s选项是什么意思?

Bash 在GNU sed中-s选项是什么意思?,bash,sed,Bash,Sed,我已经阅读了-s选项的手册。上面写着: - 在默认情况下,SED将将命令行上指定的文件视为单个连续长流。这个GNU 扩展允许用户将它们视为单独的文件:范围 地址(如“/abc/,/def/”)不允许跨越多个地址 文件,行号相对于每个文件的开头,$reference 到每个文件的最后一行,以及从R命令调用的文件 在每个文件的开头都会被重绕 在同一行中添加-s和no-s [root@kvm ~]# cat 1 |sed -s -n '/1/p' 12345a6789a99999a 12345a6

我已经阅读了
-s
选项的手册。上面写着:

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

在同一行中添加-s和no-s

[root@kvm ~]# cat 1 |sed -s   -n '/1/p'
12345a6789a99999a
12345a6789a99999b

[root@kvm ~]# cat 1 |sed     -n '/1/p'
12345a6789a99999a
12345a6789a99999b

1 file is 
cat 1
12345a6789a99999a
12345a6789a99999b

如何使用-s?

仅当您提供多个文件时,它才起作用

如果未指定
-s
标志,
sed
将充当文件内容已连接到单个流中的角色:

echo "123
456
789" > file1
echo "abc
def
ghi" > file2

# input files are considered a single stream of 6 lines, whose second to fourth are printed
sed -n '2,4 p' file1 file2 

456    # stream 1, line 2
789    # stream 1, line 3
abc    # stream 1, line 4


# there are two distinct streams of 3 lines the 2nd and 3rd of each are printed
sed -ns '2,4 p' file1 file2

456    # stream 1, line 2
789    # stream 1, line 3
def    # stream 2, line 2
ghi    # stream 2, line 3

很好的例子选择和很好的解释你能解释一下如何做多行吗?@tatsu我不知道你在说什么,但我不知道它与
sed
-s
标志的描述有什么关系。我想你会想寻找一个更相关的问题,或者问你自己的问题。