linux有没有命令可以 删除每一行的前几个字符

linux有没有命令可以 删除每一行的前几个字符,第1张

假设文件名为 a.txt, 删除 每行前5个字符

其中 ^.  为删除行首第一个字符

^.. 为删除行首头俩字符,以此类推。

sed -i 's/^.....//g' a.txt  #整个文件所有行都删除前5个字符

sed -i '1,5 s/^....//g' a.txt # 第一至五行删除钱4个字符。

或者用正则

sed -i 's/^.\{5\}//g' a.txt #整个文件所有行都删除前5个字符

sed -i '1,50 s/^.\{4\}//g' a.txt # 第一至五十行删除钱4个字符。

在Linux系统中,许多元字符,如分号(semicolon),空格(space),反斜线(backslash),美元符号(dollar sigh),问号(question mark),星号(asterisk) 通常被解释为命令,-(dashes)或者--被解释为命令的选项,通过以下的方式就可以复制、移动、删除带-或者--的文件,:

1、首先,创建文件,创建前缀带-或--文件不能直接使用touch命令,因为会被解释为命令的选项,所以得用追加的形式创建:

[root@linuxidc tmp]# echo >-foo.txt

[root@linuxidc tmp]# echo >-bar.txt

创建文件后,如果使用ls命令尝试通配符的方式列出文件,则会出现以下报错:

[root@linuxidc tmp]# ls -l *.txt

ls: invalid option -- '.'

Try 'ls --help' for more information.

需要在命令加入--分界符选项,分隔开选项和参数:

[root@linuxidc tmp]# ls -l -- *.txt

-rw-r--r--. 1 root root 2192022 Jan 9 09:03 137k.txt

-rw-r--r--. 1 root root 1 Jan 9 16:36 -bar.txt

-rw-r--r--. 1 root root 1 Jan 9 16:36 -foo.txt

相对应的,复制与移动文件的命令使用如下:

[root@linuxidc tmp]# cp -- -foo.txt /opt/

[root@linuxidc tmp]# mv -- -bar.txt /opt/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8943947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存