1. 程式人生 > >筆記02 linux的一些命令sed

筆記02 linux的一些命令sed

code 復制 new arm col ring 執行 path 之前

#!/bin/bash
#
dataformat=`date +%Y-%m-%d-%H-%M`
#進行文件件cp並重命名
nginx_home=/opt/modules/nginx-1.12/
cp  ${nginx_home}logs/access.log  ${nginx_home}logs/access_$dataformat.log
host=`hostname`
#在每行之前插入nginx集群的主機名,便於區分那個機器的日誌
sed -i s/^/${host},&/g ${nginx_home}logs/access_$dataformat.log
#計算出復制出來的文件有多少行
lines=`wc -l < ${nginx_home}logs/access_$dataformat.log` #move access-xxx.log flume‘s spooldir mv ${nginx_home}logs/access_$dataformat.log ${nginx_home}logs/flume #delete rows 刪除1到原先的行數就是剩的的新的行數 sed -i 1,${lines}d ${nginx_home}logs/access.log #reboot nginx , otherwise log can not roll. kill -USR1 `cat ${nginx_home}logs/nginx.pid`
*/1 * * * * /bin/sh /opt/cron_shell/roollog.sh > /opt/cron_shell/shell_log 使用命令: sed -n np path sed:命令 -n:選項 np:參數,取第幾行內容 path:文件路徑 如,取/home/xx/Makefile的第7行內容: sed -n 7p /home/xx/Makefile 取多行內容:8-20行的 sed -n 8,20p /home/xx/Makefile 可以配合其他命令使用,獲取/home/xx/Makefile中包含內容"arm"的第一行,註意大小寫: cat
/home/xx/Makefile | grep "arm" | sed -n 1p 替換方法2: Linux下批量替換多個文件中的字符串的簡單方法。用sed命令可以批量替換多個文件中的字符串。 用sed命令可以批量替換多個文件中的 字符串。 sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目錄` 例如:我要把mahuinan替換 為huinanma,執行命令: sed -i "s/mahuinan/huinanma/g" grep mahuinan -rl /www 這是目前linux最簡單的批量替換字符串命令了! 具體格式如下: sed -i "s/oldString/newString/g" `grep oldString -rl /path` 實例代碼:sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa` sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./`

筆記02 linux的一些命令sed