sed -n 's/-\([0-9]\)-/-0\1-/g;s/-\([0-9]\) /-0\1 /p' test2 又没有很帅气的人给我详细解释下这个.

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 13:26:35
sed -n 's/-\([0-9]\)-/-0\1-/g;s/-\([0-9]\) /-0\1 /p' test2 又没有很帅气的人给我详细解释下这个.

sed -n 's/-\([0-9]\)-/-0\1-/g;s/-\([0-9]\) /-0\1 /p' test2 又没有很帅气的人给我详细解释下这个.
sed -n 's/-\([0-9]\)-/-0\1-/g;s/-\([0-9]\) /-0\1 /p' test2 又没有很帅气的人给我详细解释下这个.

sed -n 's/-\([0-9]\)-/-0\1-/g;s/-\([0-9]\) /-0\1 /p' test2 又没有很帅气的人给我详细解释下这个.
前面的-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

看不懂