1.sed命令;主要作用是查找;新增 刪除 和修改替換。
user.txt
daokr#cat user.txt ID Name Sex Age 1 zhang M 19 2 wang G 20 3 cheng M 10 4 huahua M 100
查找命令:-n 和 p(print)
在user.txt文件中;匹配帶h的行 並且只顯示1,3行
cat user.txt | grep h |sed -n '1,3p'
daokr#cat user.txt | grep h |sed -n '1,3p' 1 zhang M 19 3 cheng M 10 4 huahua M 100
刪除命令:d(delete)
刪除最后一行記錄
cat user.txt | grep h | sed '$d'
在user.txt中顯示帶h的行;並且從結果中刪掉2,3行的記錄;只看第一行記錄
cat user.txt | grep h |sed '2,3d'
daokr#cat user.txt | grep h 1 zhang M 19 3 cheng M 10 4 huahua M 100 daokr#cat user.txt | grep h |sed '2,3d' 1 zhang M 19
新增數據:a (append)
在user.txt中查詢出帶h的行;並在第二行后面添加新的一行數據
cat user.txt | grep h |sed '2a5\thuang\tG\t40'
前面插入:i (insert)
在第二行插入2行數據的簽名插入新增的數據:
cat user.txt | grep h |sed '2i hello\nword'
數據行替換:c
把第二行數據;用命令c替換成 10 wanghua N 90
cat user.txt | grep h |sed '2c 10\twanghua\tN\t90'
字符串的替換:s
格式為“行范圍s/舊字串/新字串/g”
daokr#cat user.txt | grep h 1 zhang M 19 3 cheng M 10 4 huahua M 100 daokr#cat user.txt | grep h |sed '2s/ch/wh/g' 1 zhang M 19 3 wheng M 10 4 huahua M 100
替換並寫入文件:-i
把第3行的數據里的wang 替換成heee 並寫入到user.txt
sed -i '3s/wang/heee/g' user.txt
daokr#sed -i '3s/wang/heee/g' user.txt daokr#cat user.txt ID Name Sex Age 1 Fhang M 19 2 heee G 20 3 cheng M 10 4 huahua M 100
多行替換:-e
sed -e 's/zhang//g ; s/wang//g' user.txt # -e允許多條命令順序執行,用分號隔開,s前面不加數字表示所有行
sed -e 's/he/wl/g;s/hua/lua/g' user.txt
daokr#sed -e 's/he/wl/g;s/hua/lua/g' user.txt ID Name Sex Age 1 Fhang M 19 2 wlee G 20 3 cwlng M 10 4 lualua M 100