快速教程:Linux下如何删除文件名开头的空格 (linux 删除 开头 空格)

正文:

每个Linux用户都可能遇到这样一个问题:在使用Linux系统时,有时候会出现文件名称开头有空格的情况,这会给文件的使用带来一定的困扰。如何快速地删除文件名开头的空格呢?下面就来介绍一些方法。

方法一:使用rename命令

rename命令是Linux下的一个重命名命令,可以通过它来批量修改文件名,因为对于每个文件都可以采用正则表达式来匹配相应的文件名。

进入待修改的目录,使用以下命令进行操作:

“`bash

rename ‘s/^\s+//’ *

“`

这条命令的含义是:使用正则表达式,将每一个以空白字符开头的字符串都删除。

此外,如果你想保留之一个空格以外的空格,可以使用以下命令:

“`bash

rename ‘s/^\s{1,}//’ *

“`

方法二:使用find和sed命令

如果你想删除某个目录下所有文件开头的空格,可以使用find和sed命令组合来实现。

“`bash

find ./ -type f -name “* *” -print0 | \

“`

以上命令寻找名字中有空格的所有文件,接下来把每个找到的文件移动到一个新的文件名,新的文件名不再有空格:

“`bash

while read -d $’0′ file ; do mv -v “$file” “$(echo “${file}” | sed -e ‘s/^[[:space:]]*//’)”; done

“`

方法三:使用renameutils包

若上述两种方法都无法满足你的需求,你还可以使用renameutils包中的qmv命令。qmv命令可以打开你的默认编辑器,把你选中的文件的每个文件名与当前编辑区域的每行相对应。

在qmv命令中,每一行都表示一个文件,文件名后有一个制表符,可以用来分隔原始文件名和新文件名的一部分。

在终端输入以下命令安装renameutils包:

“`bash

sudo apt-get install renameutils

“`

然后进入待修改文件所在目录,输入以下命令:

“`bash

qmv -f do *

“`

执行之后就可以打开默认编辑器,你可以像编辑文本一样对文件名进行编辑,然后保存并退出。

以上三种方法都可以快速地删除文件名开头的空格,不过使用哪种方法还需要根据具体情况来定。希望这篇快速教程能够帮助你更好地使用Linux系统。

相关问题拓展阅读:

linux下带有空格的文件怎么删除?

先用

ls

-i

得到

hello

world

的inod(就是最前面的数字)假设这个数字是123,然后find

.

-inum

123

-exec

rm

{}

\;

就ok了

Linux命令行操作之sed

sed命令行格式:sed ‘command’ file(s)

options常用选项:

-n或–quiet或——silent:仅显示script处理后的结果;

-e:以选项中的指定的script来处理输入的文本文件;

-f:以选项中指定的script文件来处理输入的文本文件;

-r∶sed 的动作支援的是延伸型正规表示法的语法;

-i∶直接修改读取的档案内容,而不是由萤幕输出;

-h或–help:显示帮助;

-V或–version:显示版本信息。

Command常用命令:

a:新增,a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行);

c:取代,c 的后面可以接字符串,这些字符串可以取代 n1.n2 之间的行;

d:删除,d 后面通常不接任何字符串;

i:插入,i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);

p:列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作;

s:取代,可以直接进行取代的工作,通常与正规表达式搭配使用。

实例说明:

新增操作:a命令

sed ‘/^bird/a\test’ file将test追加到 以bird开头的行后面

删除操作:d命令

sed ‘/^$/d’ file #删除空白行;

sed ‘2d’ file #删除第二行;

sed ‘2.$d’ file #删除第2行到最后一行;

sed ‘$d’ file #删除最后一行;

sed ‘/^bird/’d file #删除所有开头是bird的行;

插入操作:i命令

sed -i ‘3i\bird ‘ bird.conf #在bird.conf文件第3行之前插入bird

替换文本中的字符串:s命令

sed ‘s/bird/birds/’ file #将文本中的bird替换成birds;

sed -i ‘s/ bird / birds /g’ file #将file文件中每一行的之一个bird替换为birds;

sed “stream editor”,字符流编辑器,按行处理文件,把正在处理的行保存到一个临时缓冲区,处理完数据后,把结果发送到屏幕,并删除缓存内容。不消耗内存,但耗时。

sed -n ‘2p’ 只打印第二行。p为print。-n为只打印指定内容

sed -n ‘/asdf/,/saf/p’ file 打印两者匹配之间的所有行

-n 和p同时出现

sed -n ‘2,/abc/p’ file 打印从第2行到匹配到abc的行

删除空行:sed ‘/^ 行尾

删除只有空格行:sed ‘/^ +$d’ file

将A开始的行震撼替换成NA:sed ‘s/^A.*$/NA/g’ file

匹配次数

示例:

sed -n ‘/^jiayou*/p’ file

sed -n ‘/^jiayou?/p’ file 匹配以jiyou开始,后面跟0个或1个小写字母

sed -n ‘/(123){2}/p’ datafile.txt 打印连续出现两次的行。进行分组。

去掉太多转义符,sed -r -n ‘/(123){2}/p’ datafile.txt

sed ‘

d’ file

删除命令

sed ‘4,8d’ file

sed ‘4,$d’ datafile 删除第4行到最后一行

sed ‘s/abc/ABC/’ file提每一行之一次匹配进行替换

sed ‘2,5s/abc/ABC/’ datafile对2-5行范围之一次匹配进####行替换

sed ‘s:abc:ABC’ file 修改定界符

sed -n ‘s/abc/ABC/gp’ file只打印替换的行

sed -n ‘s/abc/ABC/i’ file 替换时忽略大小写

sed ‘3i abc’ file 第三行前插入文本

sed ‘3a ABC’ file第三行后追加文本

sed ‘3c ABC’ file 替换第三行内容

sed ‘3,6c abc’ file替换指定范围的行换成一行内容sed sed ‘3i ABC ENF\nAAAA bbbb’ datafile.txt

对同一文件使用多条命令: sed -e

sed -r 不用加转义符号

sed -f script.file datafile 把命令写入文件,-f执行文件内操作

sed -n 取消默认输出

sed -i 直接修改输入文件内容,而不是输出到终端

sed -r 使用扩展正则表达式

sed -n ‘/abc/, 表示最后一行,不是正则表达式的$

sed -n ‘/abc/!p’ datafile 不匹配abc的行!表否定

sed -n ‘1!p’ datafile 不打印之一行

sed -n ‘1,3!p’ datafile 不答应第1,3行

关于linux 删除 开头 空格的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 快速教程:Linux下如何删除文件名开头的空格 (linux 删除 开头 空格)