草庐IT

linux - 仅当文件尚不存在时才将行附加到文件中

我需要将以下行添加到配置文件的末尾:include"/configs/projectname.conf"到一个名为lighttpd.conf的文件我正在考虑使用sed来执行此操作,但我不知道如何操作。如果该行不存在,我将如何只插入它? 最佳答案 保持简单:)grep+echo就足够了:grep-qxF'include"/configs/projectname.conf"'foo.bar||echo'include"/configs/projectname.conf"'>>foo.bar-q安静-x匹配整行-F模式是纯字符串https

linux - 如何使用 sed 删除文件的最后 n 行

我想从文件末尾删除一些n行。这可以使用sed完成吗?例如,要删除从2到4的行,我可以使用$sed'2,4d'file但我不知道行号。我可以使用删除最后一行$sed$dfile但我想知道从末尾删除n行的方法。请让我知道如何使用sed或其他方法来做到这一点。 最佳答案 我不知道sed,但是可以用head:head-n-2myfile.txt 关于linux-如何使用sed删除文件的最后n行,我们在StackOverflow上找到一个类似的问题: https://s

linux - 如何使用 sed 删除文件的最后 n 行

我想从文件末尾删除一些n行。这可以使用sed完成吗?例如,要删除从2到4的行,我可以使用$sed'2,4d'file但我不知道行号。我可以使用删除最后一行$sed$dfile但我想知道从末尾删除n行的方法。请让我知道如何使用sed或其他方法来做到这一点。 最佳答案 我不知道sed,但是可以用head:head-n-2myfile.txt 关于linux-如何使用sed删除文件的最后n行,我们在StackOverflow上找到一个类似的问题: https://s

linux - 如何从另一个文件A中删除文件B上出现的行?

我有一个大文件A(由电子邮件组成),每封邮件一行。我还有另一个文件B,其中包含另一组邮件。我将使用哪个命令从文件A中删除文件B中出现的所有地址。所以,如果文件A包含:ABC文件B包含:BDE那么文件A应该留下:AC现在我知道这个问题可能被问得更频繁,但我只找到了onecommandonline这给了我一个错误的分隔符。任何帮助将不胜感激!肯定有人会想出一个聪明的单线,但我不是shell专家。 最佳答案 如果文件已排序(它们在您的示例中):comm-23file1file2-23抑制两个文件中的行,或仅在文件2中。如果文件未排序,请先

linux - 如何从另一个文件A中删除文件B上出现的行?

我有一个大文件A(由电子邮件组成),每封邮件一行。我还有另一个文件B,其中包含另一组邮件。我将使用哪个命令从文件A中删除文件B中出现的所有地址。所以,如果文件A包含:ABC文件B包含:BDE那么文件A应该留下:AC现在我知道这个问题可能被问得更频繁,但我只找到了onecommandonline这给了我一个错误的分隔符。任何帮助将不胜感激!肯定有人会想出一个聪明的单线,但我不是shell专家。 最佳答案 如果文件已排序(它们在您的示例中):comm-23file1file2-23抑制两个文件中的行,或仅在文件2中。如果文件未排序,请先

linux - sed 就地标志,适用于 Mac (BSD) 和 Linux

是否有调用sedtodo就地编辑而无需备份,在Linux和Mac上都可以使用?虽然OSX附带的BSDsed似乎需要sed-i''...,但GNUsedLinux发行版通常附带解释引号作为空输入文件名(而不是备份扩展名),并且需要sed-i...代替。是否有任何命令行语法适用于这两种风格,所以我可以在两个系统上使用相同的脚本? 最佳答案 如果您真的只想以“简单”的方式使用sed-i,以下内容可在GNU和BSD/Macsed上运行:sed-i.bak's/foo/bar/'filename注意缺少空格和点。证明:#GNUsed%sed-

linux - sed 就地标志,适用于 Mac (BSD) 和 Linux

是否有调用sedtodo就地编辑而无需备份,在Linux和Mac上都可以使用?虽然OSX附带的BSDsed似乎需要sed-i''...,但GNUsedLinux发行版通常附带解释引号作为空输入文件名(而不是备份扩展名),并且需要sed-i...代替。是否有任何命令行语法适用于这两种风格,所以我可以在两个系统上使用相同的脚本? 最佳答案 如果您真的只想以“简单”的方式使用sed-i,以下内容可在GNU和BSD/Macsed上运行:sed-i.bak's/foo/bar/'filename注意缺少空格和点。证明:#GNUsed%sed-

linux - 在目录和子目录中查找并替换为 sed

我运行此命令在我的站点根目录中的所有文件中查找所有出现的“apple”并将其替换为“orange”:find./-execsed-i's/apple/orange/g'{}\;但它不经过子目录。这个命令有什么问题?下面是find./的几行输出:./index.php./header.php./fpd./fpd/font./fpd/font/desktop.ini./fpd/font/courier.php./fpd/font/symbol.php 最佳答案 您的find应该看起来像这样,以避免将目录名称发送到sed:find./-t

linux - 在目录和子目录中查找并替换为 sed

我运行此命令在我的站点根目录中的所有文件中查找所有出现的“apple”并将其替换为“orange”:find./-execsed-i's/apple/orange/g'{}\;但它不经过子目录。这个命令有什么问题?下面是find./的几行输出:./index.php./header.php./fpd./fpd/font./fpd/font/desktop.ini./fpd/font/courier.php./fpd/font/symbol.php 最佳答案 您的find应该看起来像这样,以避免将目录名称发送到sed:find./-t

linux - 使用 sed 删除空行

我正在尝试使用sed删除空行:sed'/^$/d'但我没有运气。例如,我有以下几行:xxxxxxyyyyyyzzzzzz我希望它是这样的:xxxxxxyyyyyyzzzzzz这应该是什么代码? 最佳答案 您的“空”行中可能有空格或制表符。使用POSIXclasses使用sed删除所有仅包含空格的行:sed'/^[[:space:]]*$/d'使用ERE的较短版本,例如使用gnused:sed-r'/^\s*$/d'(请注意,sed不支持PCRE。) 关于linux-使用sed删除空行,我