`
icepp
  • 浏览: 10400 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

对Sed1line中一些命令的理解 四

阅读更多

 

# align all text flush right on a 79-column width 
#右对齐,按79列宽排列所有文本 
sed -e :a -e 's/^.\{1,78\}$/ &/;ta'          # set at 78 plus 1 space

 

t命令的man
If a s/// has done a successful substitution since the last input line was read and since the last t or       T command, then branch to label; if label is omitted, branch to end of script.
一个s///命令成功替换后,那就流程就分支到label出,没成功替换就分支到脚本底部。

-e选项  add the script to the commands to be executed

整体语句的逻辑就是循环把有78个字符替换成空格加它们本身(也就是79列)。

 

 

# center all text in the middle of 79-column width. In method 1, 
# spaces at the beginning of the line are significant, and trailing 
# spaces are appended at the end of the line. In method 2, spaces at 
# the beginning of the line are discarded in centering the line, and 
# no trailing spaces appear at the end of lines. 
#使所有文本居于79列宽的格式中央。在第一种方法中,每一行开头处的空格是 
#很重要的,最后的空格被附在行尾。第二种方法中,一行开头的空格在中心对 
#齐的行中被丢弃,行尾也没有原来结尾处的空格。 
sed -e :a -e 's/^.\{1,77\}$/ & /;ta' # method 1 
sed -e :a -e 's/^.\{1,77\}$/ &/;ta' -e 's/\(*\)1/\1/' # method 2

 

这个语句和上面的类似,不再赘述。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics