每当字符计数小于9时,我都会尝试显示行号。如果它小于9,那么我想在行的末尾添加一个选项卡。然而,在sed命令中执行此操作时,我不会在输出中查看$line。
#!/usr/bin/sh
#set -x
while read line; do
count=`echo $line|wc -m`
if [ $count -lt 9 ]
then
sed -n '/$line/=' Length4.txt;
fi
done < Length4.txt
Length.txt
ABCD
DEFG
HFIJ
KLMN
您需要在shell中使用双引号进行变量扩展:
sed -n "/$line/=" Length4.txt
不过,如果你能更好地描述你的问题,我们可以帮助你清理一些代码。
使用awk
:可以更容易地解决整个问题
awk 'length($0) < 9 { print NR }' Length4.txt