Ubuntu 16.04
Bash 4.4
我想删除第 n 行的最后 n 个字符。这是一个简单的文件,每行的最后 4 个字符是数字 4。
root@0o0o0o0o0 ~/.ssh # cat remove.txt
00000000004444
55555555555555555555555554444
222222222222222224444
000033334444
111114444
Run Code Online (Sandbox Code Playgroud)
要从我可以执行的每一行中删除最后 4 个字符 sed -i 's/....$//' remove.txt
root@0o0o0o0o0 ~/.ssh # sed -i 's/....$//' remove.txt
root@0o0o0o0o0 ~/.ssh # cat remove.txt
0000000000
5555555555555555555555555
22222222222222222
00003333
11111
Run Code Online (Sandbox Code Playgroud)
但是,如果我想从第 4 行中删除最后 4 个字符,删除 3,那么文件将如下所示:
0000000000
5555555555555555555555555
22222222222222222
0000
11111
Run Code Online (Sandbox Code Playgroud)
使用 GNU sed:
sed -i 's/....$//; 4s/....$//' file
Run Code Online (Sandbox Code Playgroud)
4s/....$// 将搜索和替换限制为第 4 行。
见:man sed和info sed
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |