sed -n 's/-\([0-9]\)-/-0\1-/g;s/-\([0-9]\) /-0\1 /p' test2 又没有很帅气的人给我详细解释下这个。。
2个回答
展开全部
前面的-n是显示符合条件的行 后面的p就是打印
然后\( \)里面的内容(在这里是[0-9]-》0到9的任意一个数字)都是对应后面的\1
具体的执行就是
s/-\([0-9]\)-/-0\1-/g;
先把所有的-[1到9]替换成-0(1到9)
然后s/-\([0-9]\) /-0\1 /p;
因为之前所有的-[0-9]都被替换了,所以这里找不到需要替换的东西,所以就把这些行打印出来
例,输入是
abc
-1 apple
-2 orange
-3 pear
输出是
-01 apple
-02 orange
-03 pear
然后\( \)里面的内容(在这里是[0-9]-》0到9的任意一个数字)都是对应后面的\1
具体的执行就是
s/-\([0-9]\)-/-0\1-/g;
先把所有的-[1到9]替换成-0(1到9)
然后s/-\([0-9]\) /-0\1 /p;
因为之前所有的-[0-9]都被替换了,所以这里找不到需要替换的东西,所以就把这些行打印出来
例,输入是
abc
-1 apple
-2 orange
-3 pear
输出是
-01 apple
-02 orange
-03 pear
追问
您能再解释下所有-的作用么?
追答
你说的哪个-?
[]里面的话[0-9]就是从0到9,类似的还有[a-z]小写从a到z
如果是外面的那个的话就是普通的一个‘-’
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询