shell sed 删除文件开头的空行
2014-10-17 13:25
288 查看
语法格式sed [参数] [位址function]
[file]
定址[定址就是用于决定对哪些行进行编辑。]地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址sed将处理输入文件的所有行。地址是逗号分隔的那么需要处理的地址是这两行之间的范围包括这两行在内。范围可以用数字、正则表达式、或二者的组合表示。
选项
-i是对文件本身进行修改,而不是副本。
sed [option] {sed-command} {input-file}
sed在正常情况下,将处理的行读入模式空间(pattern space),脚本中的“sed-command(sed命令)”就一条接着一条进行处理,知道脚本执行完毕。然后该行呗输出,模式(pattern space)被清空;接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文件处理完毕。
# 删除文件中的所有空行(与“grep '.' ”效果相同)
sed '/^$/d' # 方法1
其中,^表示文件开头,$表示文件结尾,d表示删除资料。
sed '/./!d' # 方法2
其中,.(点号)表示有内容的任意字元,非空白行。!d表示不删除
位址为 regular expression时:、,在regular expression 前後必须加上 "/"。
# 只保留多个相邻空行的第一行。并且删除文件顶部和尾部的空行。
sed '/./,/^$/!d' #方法1,删除文件顶部的空行,允许尾部保留一空行
这里的,逗号不知道是什么意思?逗号一般是分隔符。
sed '/^$/N;/\n$/D' #方法2,允许顶部保留一空行,尾部不留空行
D 删除 pattern space 内第一个 newline 字母 前的资料。
用分号来隔离多条命令。
N 添加下一笔资料到 pattern space。
这里的\n不知道什么意思?
# 只保留多个相邻空行的前两行。
sed '/^$/N;/\n$/N;//D'
# 删除文件顶部的所有空行
sed '/./,$!d'
# 删除文件尾部的所有空行
sed -e :a -e '/^\n*$/{$d;N;ba' -e'}' # 对所有sed有效
sed -e :a -e '/^\n*$/N;/\n$/ba' # 同上,但只对 gsed 3.02.*有效
Pastedfrom <http://sed.sourceforge.net/sed1line_zh-CN.html>
5.
快速一行命令
下面是一些一行命令集。([ ]表示空格,[
]表示t a b键)
‘s / \. $ / / g’
删除以句点结尾行
‘-e/abcd/d’
删除包含a b c d的行
‘s / [] [ ] [ ] * / [ ] / g’
删除一个以上空格,用一个空格代替
‘s / ^[ ] [ ] * / / g’
删除行首空格
‘s / \. [ ] [ ] * / [ ] / g’
删除句点后跟两个或更多空格,代之以一个空格
‘/ ^ $/ d’
删除空行
‘s / ^. / / g’
删除第一个字符
‘s/COL \ ( . . . \ ) / / g’
删除紧跟C O L的后三个字母
‘s / ^\ / / / g’
从路径中删除第一个\
‘s / [] / [ ] / / g’
删除所有空格并用t a b键替代
‘S / ^[ ] / / g’
删除行首所有t a b键
‘s / [] * / / g’
删除所有t a b键
Pastedfrom <http://floss.zoomquiet.io/data/20100821145157/index.html>
[file]
定址[定址就是用于决定对哪些行进行编辑。]地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址sed将处理输入文件的所有行。地址是逗号分隔的那么需要处理的地址是这两行之间的范围包括这两行在内。范围可以用数字、正则表达式、或二者的组合表示。
选项
-e | 进行多项编辑即对输入行应用多条sed命令时使用 |
-n | 取消默认的输出---因为默认sed是会对档案进行默认的输出的。有时未避免重复输出就需要加上-n选项。 |
-f | 指定sed脚本的文件名 |
-r | use extended regular expressions in the script 在脚本中使用扩展正则表达式 |
sed [option] {sed-command} {input-file}
sed在正常情况下,将处理的行读入模式空间(pattern space),脚本中的“sed-command(sed命令)”就一条接着一条进行处理,知道脚本执行完毕。然后该行呗输出,模式(pattern space)被清空;接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文件处理完毕。
# 删除文件中的所有空行(与“grep '.' ”效果相同)
sed '/^$/d' # 方法1
其中,^表示文件开头,$表示文件结尾,d表示删除资料。
sed '/./!d' # 方法2
其中,.(点号)表示有内容的任意字元,非空白行。!d表示不删除
位址为 regular expression时:、,在regular expression 前後必须加上 "/"。
# 只保留多个相邻空行的第一行。并且删除文件顶部和尾部的空行。
sed '/./,/^$/!d' #方法1,删除文件顶部的空行,允许尾部保留一空行
这里的,逗号不知道是什么意思?逗号一般是分隔符。
sed '/^$/N;/\n$/D' #方法2,允许顶部保留一空行,尾部不留空行
D 删除 pattern space 内第一个 newline 字母 前的资料。
用分号来隔离多条命令。
N 添加下一笔资料到 pattern space。
这里的\n不知道什么意思?
# 只保留多个相邻空行的前两行。
sed '/^$/N;/\n$/N;//D'
# 删除文件顶部的所有空行
sed '/./,$!d'
# 删除文件尾部的所有空行
sed -e :a -e '/^\n*$/{$d;N;ba' -e'}' # 对所有sed有效
sed -e :a -e '/^\n*$/N;/\n$/ba' # 同上,但只对 gsed 3.02.*有效
Pastedfrom <http://sed.sourceforge.net/sed1line_zh-CN.html>
5.
快速一行命令
下面是一些一行命令集。([ ]表示空格,[
]表示t a b键)
‘s / \. $ / / g’
删除以句点结尾行
‘-e/abcd/d’
删除包含a b c d的行
‘s / [] [ ] [ ] * / [ ] / g’
删除一个以上空格,用一个空格代替
‘s / ^[ ] [ ] * / / g’
删除行首空格
‘s / \. [ ] [ ] * / [ ] / g’
删除句点后跟两个或更多空格,代之以一个空格
‘/ ^ $/ d’
删除空行
‘s / ^. / / g’
删除第一个字符
‘s/COL \ ( . . . \ ) / / g’
删除紧跟C O L的后三个字母
‘s / ^\ / / / g’
从路径中删除第一个\
‘s / [] / [ ] / / g’
删除所有空格并用t a b键替代
‘S / ^[ ] / / g’
删除行首所有t a b键
‘s / [] * / / g’
删除所有t a b键
Pastedfrom <http://floss.zoomquiet.io/data/20100821145157/index.html>
相关文章推荐
- shell文件操作(删除,显示,查找,增加,替换) sed用法
- SHELL 删除文件中的空行或者空白行
- Shell 删除文件的空行
- shell sed替换、删除文件中的某个字符串
- 删除文本文件行号的小方法(shell,sed)
- 用sed去除配置文件空行和注释
- 用C++程序删除文本文件中以“//”开头的行
- sed 删除文件最后几行
- 自己编写 shell 命令 实现安全的删除文件
- Python笔记5之实例:批量删除文本空行和多文件合并
- 用shell脚本实现删除一定大小的文件
- Linux中删除文件中空行的脚本
- phpcms本地包含漏洞导致的写shell漏洞和删除任意文件漏洞
- sed实战之——删除空行(包括由空格组成的空行)
- 巧用vim+sed整理shell脚本文件
- 用sed去除配置文件空行和注释
- 删除文件空行
- 用shell脚本删除相同修改时间的文件
- 【linux】删除以特殊符号开头的文件
- shell-删除目录下指定日期前的所有文件