Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 什么是';G';你用sed命令做什么?_Bash_Sed - Fatal编程技术网

Bash 什么是';G';你用sed命令做什么?

Bash 什么是';G';你用sed命令做什么?,bash,sed,Bash,Sed,我对一个名为“file1.txt”的文本文件尝试了两个不同的sed命令。 我已收到相同的结果或输出。我不明白的是“G”选项的含义或用法!我在网上搜索过,但找不到好答案 以下是两个命令: sed 'G' file1.txt sed '/^$/d;G' file.txt 两个命令的输出相同!它们在文本文件中的每一行之间创建一行间距! 我知道“^$”指的是不包含任何内容的行,但“G”的作用是什么。例如,如果我将“d”改为“G”,所有空行都将被删除 您可以使用“g”命令将保持空间复制到模式空间,而不

我对一个名为“file1.txt”的文本文件尝试了两个不同的sed命令。 我已收到相同的结果或输出。我不明白的是“G”选项的含义或用法!我在网上搜索过,但找不到好答案

以下是两个命令:

sed 'G' file1.txt
sed '/^$/d;G' file.txt
两个命令的输出相同!它们在文本文件中的每一行之间创建一行间距! 我知道“^$”指的是不包含任何内容的行,但“G”的作用是什么。例如,如果我将“d”改为“G”,所有空行都将被删除

您可以使用“g”命令将保持空间复制到模式空间,而不是将保持空间与模式空间交换。这将删除模式空间。如果要附加到模式空间,请使用“G”命令。这将向阵列空间添加新行,并在新行之后复制保留空间

也就是说,不必交换保持空间和模式空间(当前行等)的当前内容,您可以获取模式空间并将其复制到保持空间(在过程中替换或附加到保持空间)

这两个sed命令属于您可以找到的惯用sed单行程序,它们只对某些文件(其中没有空行的文件)执行相同的操作


根据
sed-man

g
将图案空间的内容替换为保留空间的内容

G

将换行符追加到模式空间的内容,然后将保留空间的内容追加到模式空间的内容

您应该正在阅读
mansed
@nu11p01n73R我已经阅读了sed的手册页,但是解释非常有限或简短@nu11p01n73R您表达的是这样一种情绪,即不需要如此或对话,也不需要任何内容。有一点
G