分页: 1 / 1

如何知道sed执行了几次

发表于 : 2012-09-21 15:59
renxinzhi
我使用

代码: 全选

sed -n 's/^ Cu          //p' $infile >tmp-1
来替换所有以“ Cu ”开头的行,如何知道这样的行总共有多少行?
我使用

代码: 全选

n_Cu=0
for i in `cat tmp-1` ;do
    ((n_Cu++))
done
得到的行数为48

代码: 全选

n_Cu=`awk '{print NR}' tmp-1 | tail -n1`
得到的行数却为16。
这是我得到的tmp-1
0.00000000 0.00000000 0.00000000
-1.27152577 2.20234546 0.00000000
2.54305000 0.00000000 0.00000000
1.27152423 2.20234546 0.00000000
2.56687686 4.35910237 6.24757327
3.81526087 2.16459726 6.15575590
-0.01729426 4.35861785 6.23853861
1.27338065 2.22265108 6.33939064
1.27142302 0.73699288 4.13430299
0.01378231 2.93000040 4.16918098
3.81533767 0.71144568 4.17611456
2.52916392 2.93096943 4.17065174
-0.00427284 1.46878823 2.08364500
-1.27162800 3.66496713 2.08553598
2.54727095 1.46896442 2.08385511
1.27137114 3.67227891 2.08091359
使用

代码: 全选

sed '/$0.00000000/a\\ F F F' tmp >>tmp-1
来对每个以0.0结尾的行缀加字符串“ F F F”,但是不起作用。
另外,如何对非0.0结尾的行添加字符串“ T T T”呢?
谢谢。

Re: 如何知道sed执行了几次

发表于 : 2012-09-21 18:37
aerofox
计算行数用 wc 命令。
renxinzhi 写了:使用
代码:
sed '/$0.00000000/a\\ F F F' tmp >>tmp-1
来对每个以0.0结尾的行缀加字符串“ F F F”,但是不起作用。
另外,如何对非0.0结尾的行添加字符串“ T T T”呢?
$ 应该放在后面,. 代表任意字符。

代码: 全选

sed '/0\.0*$/a\\ F F F' tmp >>tmp-1

Re: 如何知道sed执行了几次

发表于 : 2012-09-22 18:05
niejieqiang
perl:

s/(?<!0\.0)$/TTT/g

Re: 如何知道sed执行了几次

发表于 : 2012-09-22 22:02
renxinzhi
aerofox 写了:计算行数用 wc 命令。
renxinzhi 写了:使用
代码:
sed '/$0.00000000/a\\ F F F' tmp >>tmp-1
来对每个以0.0结尾的行缀加字符串“ F F F”,但是不起作用。
另外,如何对非0.0结尾的行添加字符串“ T T T”呢?
$ 应该放在后面,. 代表任意字符。

代码: 全选

sed '/0\.0*$/a\\ F F F' tmp >>tmp-1
谢谢

Re: 如何知道sed执行了几次

发表于 : 2012-09-22 22:02
renxinzhi
niejieqiang 写了:perl:

s/(?<!0\.0)$/TTT/g
谢谢