2

每当字符数小于 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

长度.txt

ABCD
DEFG
HFIJ
KLMN
4

2 回答 2

0

您需要在 shell 中使用双引号来进行变量扩展:

sed -n "/$line/=" Length4.txt

虽然如果您更好地描述您的问题,我们可以帮助您清理一些代码。

于 2013-08-27T14:23:16.583 回答
0

这整个事情可以通过以下方式更容易解决awk

awk 'length($0) < 9 { print NR }' Length4.txt
于 2013-08-27T17:30:30.610 回答