Linux 随学随记 (1)
1. vim替换
ctrl+v 进入列模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如#,再按Esc,就会全部注释。或者也可以运行下面这些命令:
1 | :s/^/# " 用 # 注释当前行 |
顺便说一下vim的替换,这个常用,已经牢记,其实和上面用命令注释多行是一样的,只不过是上面注释的命令里的"^"符号代表开始位置而已,在下面这些命令中,"s"代表替换,part1代表查找的内容,part2代表替换的内容,"%"代表所有行,"g"代表替换整行里所有的内容(如果不加"/g"则只替换每行第一个匹配part1的地方)。
p.n.关于g的用法貌似在本系统相反,虽然各处都这么说。。。
1 | :s/part1/part2 " 用 part2 替换当前行中第 1 个 part1 |
BTW:在替换时要注意,某些字符是需要转译的,如空格、括号等。
2. sed添加空行
2.1. 每行前后添加空行
1 | sed G tmp # 每行后面添加一行空行 |
依次类推,添加几行空行,就有几个G或者x;p;x
2.2. 如果行后有空行,则删除,然后每行后面添加空行
sed '/^$/d;G' tmp
2.3. 在匹配行前后添加空行
1 | sed '/shui/G' tmp # 如果一行里面有如果一行里面有 shui 这个单词,那么在他后面会添加一个空行 |
2.4. 每几行后面添加一个空行
1 | sed 'N;/^$/d;G' tmp # 每两行后面增加一个空行 |
2.5. 以x为开头或以x为结尾的行前后添加空行
1 | sed '/^xi/G;' tmp # 以 xi 为开头的行后面添加空行 |
3. sed删除行首空格
如果确认只是空格:
sed 's/^ *//' infile
如果判断不清行首是空格还是制表符的话, 还可以用这个:
sed 's/^[[:space:]]*//' infile