去不掉文件中空行

sh/bash/dash/ksh/zsh等Shell脚本
回复
iamcook84
帖子: 41
注册时间: 2013-08-29 9:27

去不掉文件中空行

#1

帖子 iamcook84 » 2014-05-12 8:30

suse@linux-qmfx:~/program> cat -n ifs.txt
1 q b d
2
3 abc
4
5 b g ll
6 {
7 }
8
9
10
11 j h k
suse@linux-qmfx:~/program> sh real.sh
q b d
abc
b g ll
{
}
j h k
suse@linux-qmfx:~/program> cat wei.sh
#!/bin/bash
#grep -v '^$' ifs.txt
sed '/^$/d' ifs.txt
suse@linux-qmfx:~/program> sh wei.sh
q b d
abc

b g ll
{
}



j h k
suse@linux-qmfx:~/program>

只有real.sh成功了,但是改了6、7行中“{”、“}”位置,把“{”和“}”移到行首了(“{”、“}”前面有空格的,我一复制,在网页上空格没了。)。wei.sh就去不掉8、9、10行,为什么可以去掉了第2行。
上次由 iamcook84 在 2014-05-12 11:46,总共编辑 2 次。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 去不掉文件中空行

#2

帖子 eexpress » 2014-05-12 8:50

grep -v -E "(^$|^#|^!)"
● 鸣学
头像
youzhiyili
帖子: 2422
注册时间: 2012-03-22 20:42
系统: ubuntu22.04

Re: 去不掉文件中空行

#3

帖子 youzhiyili » 2014-05-12 8:53

试了一下,可以啊

代码: 全选

meme@meme:/tmp$ cat -n ifs.txt 
     1	q b d
     2	
     3	abc
     4	
     5	b g ll
     6	{
     7	}
     8	
     9	
    10	
    11	j h k

代码: 全选

meme@meme:/tmp$ sed /^$/d ifs.txt 
q b d
abc
b g ll
{
}
j h k
@自由建客 @qy117121 @枫叶饭团 @cikekid @YeLee @jtshs256 @eexpress @ljj_jjl2008 @zhw2101024 @TeliuTe @月下叹逍遥 @leeaman @懒蜗牛Gentoo @灰色小狼 @photor @adagio @JiangHui @phoenixlzx @oneleaf
iamcook84
帖子: 41
注册时间: 2013-08-29 9:27

Re: 去不掉文件中空行

#4

帖子 iamcook84 » 2014-05-12 12:10

suse@linux-qmfx:~/program> grep -c '^$' line.txt
0
suse@linux-qmfx:~/program> grep -v '^$' line.txt
q b d
abc
b g ll
{






}
j h k
suse@linux-qmfx:~/program>
这又是为什么?
头像
youzhiyili
帖子: 2422
注册时间: 2012-03-22 20:42
系统: ubuntu22.04

Re: 去不掉文件中空行

#5

帖子 youzhiyili » 2014-05-12 19:40

双引号

代码: 全选

cat ifs.txt
q b d

abc

b g ll
{
}



j h k
grep "^$" ifs.txt





grep -v "^$" ifs.txt
q b d
abc
b g ll
{
}
j h k
@自由建客 @qy117121 @枫叶饭团 @cikekid @YeLee @jtshs256 @eexpress @ljj_jjl2008 @zhw2101024 @TeliuTe @月下叹逍遥 @leeaman @懒蜗牛Gentoo @灰色小狼 @photor @adagio @JiangHui @phoenixlzx @oneleaf
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 去不掉文件中空行

#6

帖子 aerofox » 2014-05-12 20:46

你那文件是 DOS 格式吧,行尾多个 ^M,cat 时看不到。
回复