sed -i 's#/home/ping/ping.sh#EXCLUSIVE#;/EXCLUSIVE/d' /var/spool/cron/root




cat test.txt


123
234
345
542
adb
lsnd


我想打印每个文件除了最后两行的数据,脚本如下:


#!/bin/sh

line1=`wc -l test.txt`
line2=`expr $line1 - 2`

sed-n '1,$line2p' test.txt

因为test.txt大小会变,想通过一个变量实现,在sed 显示行号中无法使用变量
好像$line2p看成了一个变量了...

——————————————————————————————————————

解答:

sed -n '1,'$line2'p' test.txt

sed -n 1,${line2}p test.txt

sed -n "1,${line2}p" test.txt


sed -n "s/$a/$b/g" test.txt