linux 下,如何将文本每行前的空格删掉?
kwrite 选上你要删除开始为空格的那些行,之后 shift + tab 。
如果是 GNOME 环境,可以用 gedit 。
这两个好像都叫做“文本编辑器”。只不过基于的环境不同。
这个功能本来主要是方便写程序的。
linux shell 问题,清除文件中的空格
先建脚本:clearspace.sh
给脚本添加执行权限 chmod +x clearspace.sh
编辑脚本内容:
touch tmpFile # 建临时文件
sed 's/\ //g' $1 temFile #sed s命令 将空格替换 重定向到临时文件
cat temFile $1 #覆盖原文件
rm -f temFile #删除临时文件
echo 'OK,DONE!'
执行脚本 ./clearspace.sh souceFile
实例:
执行前:
查看原文件:cat source.txt
sfd as as da la; as las j8
890asfd f22
2 23rf a 23rfa
asdf9293 22 sdf
234 23r4 sdk;
, . ' ; ds
sadf wow
sa s sd
执行
./clearspace.sh source.txt
OK,DONE!
执行之后查看结果:cat source.txt
sfdasasdala;aslasj8
890asfdf22
223rfa23rfa
asdf929322sdf
23423r4sdk;
,.';ds
sadfwow
sassd
linux命令grep怎么取得空白行
那个命令本身就有问题出来的结果是0;
修改后的命令如下:
last| grep [a-zA-Z]|egrep -v ‘wtmp’|wc -l
grep [a-zA-Z]排除空行,因为空行不包含字母
如何在linux系统下对文件夹名有空格的文件
在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹,
而在linux则需要进行一些特殊的处理才能实现以上功能.
(1)创建文件夹
mkdir my\ first
这条命令创建了文件夹"my first",文件夹名中my和first之间有一个空格,在命令行中需要
添加一个"\"符号和一个空格的组合
mkdir my\ \ tow
这条命令创建了文件夹"my tow",文件夹名中my和tow之间有两个空格,在命令行中需要
添加两个"\"与空格的组合
(2)移动文件夹
mv my\ first /tmp
这条命令将文件夹"my first"移动到文件夹tmp下
mv my\ \ tow /tmp
这条命令将文件夹"my tow"移动到文件夹tmp下
(3)删除文件夹
rm -r my\ first
这条命令将文件夹"my\ first"删除
rm -r my\ \ tow
这条命令将文件夹"my\ \ tow"删除
(4)进入文件夹
cd my\ first
这条命令可以进入文件夹"my first"
cd my\ \ tow
这条命令可以进入文件夹"my tow"
(5)创建压缩文件
tar czf my\ first.tar.gz my\ first
创建压缩文件"my first.tar.gz"
tar czf my\ \ tow.tar.gz my\ \ tow
创建压缩文件"my tow.tar.gz"
tar cjf my\ first.tar.bz2 my\ first
创建压缩文件"my first.tar.bz2"
tar cjf my\ \ tow.tar.bz2 my\ \ tow
创建压缩文件"my\ \ tow"
(6)解压压缩文件
tar xzf my\ first.tar.gz
解压压缩文件"my first.tar.gz"
tar xzf my\ \ tow.tar.gz
解压压缩文件"my tow.tar.gz"
tar xjf my\ first.tar.bz2
解压压缩文件"my first.tar.bz2"
tar xjf my\ \ tow.tar.bz2
解压压缩文件"my tow.tar.bz2"
总结:本文实现了对文件夹名中有空格的文件进行创建\移动\删除\进入\压缩\解压
等操作,相对于文件夹名中有空格的文件夹来说,在输入命令时需要在文件夹名之间
插入"\"与空格的组合,文件夹名中有几个空格就需要加几个组合.
LINUX删掉换行符
去掉文件中的换行符
(1)tr命令的操作是针对文件的操作,它把整个文本当做操作的对象,所以可以直接去除文件中的换行符
tr '\n' ' ' file
(2)sed的操作对象是行.而作为行分割符号的回车符,本身是不属于行的.所以sed中必须加上N命令,把下一行的内容添加到当前的pattern space中,这样实际上是把相邻的2行合并了.下一次仍然是先n,再p,再N,开始新的轮回:
cat file | sed 'N;s/\n/ /'
所以上面的语句是不能把文件内容合并为一行的,到底该怎么写,我暂时没有想到,呵呵
(3)直接用awk
awk '{printf("%s ",$0)}' file
(4)当然,用echo也是可以的:
while read line;do echo -n "$line"; done awk_help.txt, 这样,可以把awk_help.txt的内容合并为一行
sed -e "s#\[/r][/r][/n]#\[/r][/n]#g" file
linux中如何用rename命令重命名一个文件
用法如下:
$ rename [options] [perlexpr] [files]
PS:
(1)options
-v 显示成功重命名的文件-n 只显示将被重命名的文件,但是不进行重命名-f 如果文件已存在,覆盖-e 表明需要需要被执行的code,如果没有-e,那么第一个参数将被当成code。
(2)perlexpr
这是一个Perl表达式,文件名应当在其中被改变,没学过Perl也没关系,这个命令用到的语法很像sed,容易上手。
(3)files
需要重命名的文件。
扩展资料:
linux中如何用rename命令重命名一个文件示例:
1、去除文件扩展名
$ rename 's/\.bak$//' *.bak
2、去除文件名中的空格
$ rename 's/ //g' *
3、文件名转为小写
$ rename 'y/A-Z/a-z/' *
4、现在有一堆文件,他们的文件名模式是这样的第一部分-haha-第二部分.file ,现在要把中间的-haha- 删去并把第一部分的字符串和第二部分的字符串对调,可以这样:
$ rename 's/(.*)-haha-(.*)(.file)/$2$1$3/' *.file