[求助]关于'\012' '\001'

sh/bash/dash/ksh/zsh等Shell脚本
回复
taker2001
帖子: 16
注册时间: 2006-01-06 11:35

[求助]关于'\012' '\001'

#1

帖子 taker2001 » 2007-06-05 21:26

$ cat gres
if [ $# -lt "3" ]
then
echo Usage: gres pattern replacement file
exit 1
fi
pattern=$1
replacement=$2
if [ -f $3 ]
then
file=$3
else
echo $3 is not a file.
exit 1
fi
A="`echo | tr '\012' '\001' `"
sed -e "s$A$pattern$A$replacement$A" $file

请问红色那行有什么作用?
thword
帖子: 119
注册时间: 2007-04-09 12:19

#2

帖子 thword » 2007-06-05 22:33

把echo输入的换行符转换成null(空值),以做为sed表达式中的分隔符。
012,001是ascii码值。
这句也可以写成
A="`echo -ne '\001'`"
taker2001
帖子: 16
注册时间: 2006-01-06 11:35

#3

帖子 taker2001 » 2007-06-12 21:58

谢谢!明白了!
回复