当前位置: 首页 > 知识库问答 >
问题:

搜索并删除单个单词

吕英才
2023-03-14

我想从中删除用户名。htaccess文件。

示例. htaccess

RewriteEngine On
RewriteBase /~usern/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~usern/index.php [L]

我想给我们一种动态命令,因为我不必每次为每个用户手动输入/~username

我试过了

sed 's/$whoami##g' .htaccess

但这并没有达到预期的效果。

共有3个答案

林鹭洋
2023-03-14

当我对配置文件进行一些修改时,我喜欢做大量备份,以便在出现错误时能够获得较旧的配置。

因此,与其替换,我更喜欢创建一个旧行的注释副本(并确保只修改未注释的所需行):

sed -re "s/^(\s*Rewrite.*)\/~$(whoami)(.*$)/# &\n\1\2/" -i.bak .htaccess

而不是diff-u。htaccess{.bak,}将生成:

--- .htaccess.bak   2013-09-07 18:44:07.043537404 +0200
+++ .htaccess       2013-09-07 18:46:35.236454686 +0200
@@ -1,6 +1,8 @@
 RewriteEngine On<br />
-RewriteBase /~usern/<br />
+# RewriteBase /~usern/<br />
+RewriteBase /<br />
 RewriteRule ^index\.php$ - [L]<br />
 RewriteCond %{REQUEST_FILENAME} !-f<br />
 RewriteCond %{REQUEST_FILENAME} !-d<br />
-RewriteRule . /~usern/index.php [L]<br />
+# RewriteRule . /~usern/index.php [L]<br />
+RewriteRule . /index.php [L]<br />

查找包含重写的行*用户n。将此行替换为注释标记(#),然后是整行,而不是换行符和不带usern的同一行

由于括号中有\s*,因此任何类型的缩进都将在输出时再现。

当使用开关-i.bak运行sed时,较旧的未修改版本的文件将存储为。htaccess。bak(这可能与syntax/#

仅用于样品,因此您可以选择:

  • 编辑时备份旧文件

王经赋
2023-03-14

你正在寻找的s在se:

 sed 's#/~usern##g' file

用你的例子:

kent$  cat file
RewriteEngine On<br />
RewriteBase /~usern/<br />
RewriteRule ^index\.php$ - [L]<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /~usern/index.php [L]<br />

kent$  sed 's#/~usern##g' file
RewriteEngine On<br />
RewriteBase /<br />
RewriteRule ^index\.php$ - [L]<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
葛玉堂
2023-03-14

您可以sed-i“s//$(whoami)//g”。htaccess

如果只想删除行中的第一个条目,请删除最后一个g选项。

sed-i(内联sed,直接在文件上执行操作)“s/find_this/replace_with_this/”(搜索并替换)

如果您想搜索~/username并删除它,而不仅仅是用户名条目,只需将表达式更改为:

sed-i“s/~\/$(whoami)//g”。htaccess

 类似资料:
  • 问题内容: 我有一个会话变量,其中包含带有值的深层json对象: 例如,我想找到带有“ Piranha the Fish”的行,然后将其删除(并再次对其进行json_encode)。这该怎么做?我想我需要在结果数组中搜索并找到要删除的父键,但是我还是被卡住了。 问题答案: 会将JSON对象转换为由嵌套数组组成的PHP结构。然后,您只需要遍历它们和不需要的一个即可。

  • 问题内容: 我从来没有真正听到过关于这个问题的直接答案,我只需要FULLTEXT搜索包含多个单词“ Firstname Lastname”的几列 但是,如果我在此处输入多个单词,它将无法运行查询。 问题答案: 如果要进行精确搜索:

  • 问题内容: 我曾经使用过django,haystack和elasticsearch。 我的search_index.py: 搜索表格: 模板: 看 ` 我得到所有的价值,那里有“老板”和“挡泥板” 当您在搜索框中输入“ boss fender”时,我没有结果。从搜索表单中,我只能得到一个单词的结果,例如“老板”。如何使搜索多个单词的能力? 问题答案: 这个月我陷入了这个问题。 为了执行正确的查询,

  • 问题内容: 这是我认为的相关代码: 单击复选框后,我希望从数据库中删除数组中的适当对象。 我的功能如下: 但是,这将删除数据库中的所有条目。我希望它仅删除有问题的特定对象。反正我有这样做吗? 问题答案: 好,知道了。 循环使用时,请使用。这使您可以将参数作为参数发送到函数,并且效果很好。

  • 在二元搜索树的情况下,为什么我们不能简单地在一个节点有两个子节点的情况下,将一个节点的前一个节点替换为后一个节点?

  • 主要内容:Eclipse 搜索菜单Eclipse 搜索菜单 Eclipse 搜索对话框允许您在整个工作区、一组项目、特定项目或包资源管理器视图中选择的文件夹中搜索包含文字或字符模式的文件。 可以通过以下方式调用搜索对话框 : 单击“Search”菜单并选择“Search”或“File”或“Java”。 单击 Ctrl + H。 “File Search”页面允许您搜索任何类型的文件,但“Java Search”页面仅关注 Java