Articles of sed

用新行字符replace空间用于stream浪盒

我正在尝试使用shell脚本在我存储key和cert文件的地方设置vagrant框。 任何证书或密钥文件的正常格式如下 —–BEGIN CERTIFICATE—– MIIDzzCCAregAwIBAgIJAP384f0KeRndMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV …. 0+ZQ+Yxjzs69VHdPJbzu3cxjNQ== —–END CERTIFICATE—– —–BEGIN PRIVATE KEY—– MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6qoE3hNniDqD7 …. wr5wa+bGBgNzIBLS5j9F9Kul —–END PRIVATE KEY—– 但是,当我检查stream浪汉盒子,看起来像下面。 —–BEGIN CERTIFICATE—– MIIDzzCCAregAwIB ….. 69VHdPJbzu3cxjNQ== —–END CERTIFICATE—– —–BEGIN PRIVATE KEY—– MIIEvgIBADANBgkqhki …. OB7jnwaqq wr5wa+bGBgNzIBLS5j9F9Kul —–END PRIVATE KEY—– (基本上,一切都在一行) 由于哪个Apache2在日志中有错误。 现在我想将这些键转换为适当的格式。 我做了下面的尝试 cat server.crt | tr " " "\n" cat server.crt | tr "\ /" " " […]

我如何将sedexpression式中所做的更改回显到控制台?

我有一个简单的sedexpression式: sed -i 's/foo/bar/g' blat.xml 因为expression式修改了文件,所以很难看到哪些行被改变。 有没有办法将修改后的行回显到控制台? 类似于以下输出的内容将是理想的: sed -n 's/foo/bar/gp' blat.xml

在文件中的列上运行(vertical?)diff

在我们公司,我们从第三方提取库存文件。 这些文件是固定的格式,包含13位EAN(想想UPC代码)以及其他数据。 我在我们的数据库中也有EAN的主要列表。 我想将主文件与新文件进行比较,并从新文件中删除所有包含EAN的行,这不在主文件中。 例如:主人 1234567890123 4567890123456 新文件1234567890123 4567890123456 5678901234567 < – 删除这一个 新文件包含EAN以外的数据。 EAN在第一列。 数据以制表符分隔。 我目前正在做这个在PHP中。 问题是这两个文件有大约4百万。 每个行,我的脚本消耗大量的内存。 我目前加载整个主列表到RAM和做isset()s。 有什么聪明的Linux技巧/程序可以帮助我吗?

无法用cd dirname cd到父目录

我做了一个bash命令,它可以生成一个用于重新启动服务器上的所有Weblogic(8,9,10)实例的单行命令。 该脚本运作良好,但我需要一个build议,使使用dirname概念更好 /usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print $2}' | sed 's/weblogic.policy//' | sed 's/security\///' | sort | sed 's/^/cd /' | sed 's/$/ ; cd .. ; \/recycle_script_directory_path\/recycle/ ;' | tr '\n' ' ' 要重新启动Weblogic实例,需要从域目录内启动回收(/ recycle_script_directory_path / recycle /)脚本,因为回收脚本从域目录中的某些.ini文件中提取某些应用程序信息。 该脚本的以下部分会生成一行cd到应用程序的父目录,即域目录 […]

Sedreplace帮助

我需要一些sedreplace协助: sed -ri 's#logging { /* If you want to enable debugging, eg. using the 'rndc trace' command, * named will try to write the 'named.run' file in the $directory (/var/named"). * By default, SELinux policy does not allow named to modify the /var/named" directory, * so put the default debug log file in data/ […]

防止mysqladmin proc弄乱我的terminal

我们用二进制数据做了很多查询,因此,有时我运行“mysqladmin proc”时,terminal会变得混乱。 运行重置修复它,但我宁愿只是防止在第一个地方的问题。 我怎样才能用sed去掉这些呢? 还是有更好的方法来做到这一点?

sed在SSH中正常工作,而不是在PHP中

所以,我有下面的行,我用PHP运行($ addPHPtags); $addPHPtags = "/bin/sed -i '/<BODY BGCOLOR=\"#FFFFFF\">/ a\ <?php \n ?> '" . $instance['file'] . " 2>&1"; 我期望该命令find密钥,并附上一个PHP标签。 但是,当我在PHP中运行它,如果我陷阱命令输出,我得到以下错误: [0] => /bin/sed: -e expression #1, char 39: unknown command: `?' 但是,如果我在SSH中运行相同的命令,它工作得很好: /bin/sed -i '/<BODY BGCOLOR=\"#FFFFFF\">/ a\ <?php \n ?>' file.php 我没有想法,我尝试了各种替代scheme,但无济于事。 任何帮助? 谢谢。

帮助用SED命令replace几个文件中的文本

编辑:我find了解决办法。 这个命令起作用,以防有人发现它有用。 i.bak修饰符对每个更改的文件进行备份。 find /pathoffilestochange -name "*.php" | xargs sed 's|/wrong/path/|/correct/path/|g' 你好, 我想在几十个.php文件中改变一个path。 我不知道如何使用sed,但是我在网上的某个地方得到了这个命令,并成功地使用了它。 find /ruta -name "*.txt" | xargs sed -i.bak 's/charset=Foo/Bar/g' 除了现在我需要将分隔符更改为不同的字符,hece @。 这是我目前的命令: find /pathoffilestochange -name "*.php" | xargs sed -i.bak 's@charset=/wrong/path/@/correct/path/@g' 它不工作,它不给任何错误,但我检查文件,他们保持不变。 我以root用户身份执行命令,这是文件所有者,权限似乎没问题,所以一定不能成为问题。 我正在运行Debian。

在文件中显示特定的单词。 在日志中用作电子邮件的variables,grep

我只想在/ var / log / secure文件中显示电子邮件地址。 电子邮件进入一个variables,所以只是grepping线路将无法正常工作。 我知道如何将sed命令串在一起,但有没有更清晰的方法? 如果有一个更清晰的方式来获得ssh关键评论电子邮件,我甚至可以完全废除这个想法。 我正在寻找哪个电子邮件评论,在客户端SSH密钥,被用来login。 到目前为止,我一直在使用这样的东西.. ssh root@localhost "sleep 1 ; tail -1 /var/log/secure | …" 我希望有一个更好的方法,或者至less一个干净的方式来显示电子邮件。

从RT_SiteConfig.pmparsing$ DatabasePassword的值

我正在编写一个Bash shell脚本来每天备份我们的请求跟踪器(RT)MySQL数据库。 而不是在shell脚本中对MySQL数据库用户的密码进行硬编码,我想从RT的RT_SiteConfig.pm文件中parsing它。 RT_SiteConfig.pm中的相关行如下所示: Set($DatabasePassword , 'db_pw_here'); 给出上面一行,只提取string“db_pw_here”的“最干净的”方法是什么?