Chinaunix

标题: 用shell命令实现编辑文本 [打印本页]

作者: luofeiyu_cu    时间: 2014-10-26 07:16
标题: 用shell命令实现编辑文本
sudo nano ~/wordpress/wp-config.php

将wp-config.php里面的三行

define('DB_NAME', 'name_here');
define('DB_USER', 'user_here');
define('DB_PASSWORD', 'password_here');

改成
define('DB_NAME', 'wpdatabase');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'dbpassword');

然后保存退出。

请用shell脚本自动完成这个过程,就是:写成一个write.sh 脚本,sh write.sh 可以自动完成这个动作。
作者: love_shift    时间: 2014-10-26 09:47
  1. root@ubuntu:/tmp# dbname="wpdatabase"
  2. root@ubuntu:/tmp# dbuser="wpuser"
  3. root@ubuntu:/tmp# dbpassword="dbpassword"
  4. root@ubuntu:/tmp#
  5. root@ubuntu:/tmp# sed "s/name_here/$dbname/;s/user_here/$dbuser/;s/password_here/$dbpassword/" f4
  6. define('DB_NAME', 'wpdatabase');
  7. define('DB_USER', 'wpuser');
  8. define('DB_PASSWORD', 'dbpassword');
复制代码
剩下交给你自己啦!
作者: luofeiyu_cu    时间: 2014-10-26 10:46
不行,你做了一个替换操作,如果原文件有四行
define('NAME', 'name_here');
define('DB_NAME', 'name_here');
define('DB_USER', 'user_here');
define('DB_PASSWORD', 'password_here');

你就使他变成
define('NAME', 'wpdatabase');
define('DB_NAME', 'wpdatabase');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'dbpassword');

我只希望它变成
define('NAME', 'name_here');
define('DB_NAME', 'wpdatabase');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'dbpassword');
作者: love_shift    时间: 2014-10-26 10:52
我只针对第一个贴呀,还以为关键字唯一呢。。。你自己加个匹配吧!
作者: wiliiwin    时间: 2014-10-26 11:05
  1. sed    '/DB_NAME/{s/name_here/wpdatabase/};/DB_USER/{s/user_here/wpuser/};/DB_PASSWORD/{s/password_here/dbpassword/}'   29.txt
  2. define('NAME', 'name_here');
  3. define('DB_NAME', 'wpdatabase');
  4. define('DB_USER', 'wpuser');
  5. define('DB_PASSWORD', 'dbpassword');
复制代码

作者: luofeiyu_cu    时间: 2014-10-26 15:19
为何我这样写不行?


x="define('DB_NAME', 'user_here');"
y="define('DB_NAME', 'wpdatabase');"


sed  's/$x/$y/g'   ~/wordpress/wp-config.php

这个方法为何不可以?

作者: jason680    时间: 2014-10-26 16:14
本帖最后由 jason680 于 2014-10-26 16:22 编辑

回复 6# luofeiyu_cu

shell 十三問?
http://bbs.chinaunix.net/forum.p ... mp;fromuid=24785593

shell 十三問? 4) " "(雙引號) 與 ' '(單引號)差在哪?
http://bbs.chinaunix.net/forum.p ... p;page=4#pid1511745

shell 十三問? Part-II: Regular Expression
http://bbs.chinaunix.net/forum.p ... ;page=16#pid2934852

作者: moperyblue    时间: 2016-10-15 13:24
回复 6# luofeiyu_cu


1.
x="define('DB_NAME', 'user_here');" => x="define('DB_NAME', 'name_here');"

2.
sed  "s/$x/$y/g"   ~/wordpress/wp-config.php

sed  's/'"$x"'/'"$y"'/g'   ~/wordpress/wp-config.php


另解.
sed -r "1{x;s/.*/DB_NAME wpdatabase\nDB_USER wpuser\nDB_PASSWORD dbpassword/;x};G;s/(\b\S+\b)(.*').*('.*)\n\1\s(\S+)/\1\2\4\3/;P;d"
作者: sunzhiguolu    时间: 2016-10-16 01:38
define('DB_NAME', 'wpdatabase');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'dbpassword');
将带有背景色的地方完全匹配, 其他地方替换就行了.





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2