shell文件编辑
暗黑的shell修改文件操作
几个命令: cut, sed, awk
cut
echo [str] | cut -d [sep] -f [num] #使用分割符[sep]切分字符串[str]并返回第[num]段(从1编号) sed
sed -e '[desc] [str]' [file] #对文件[file]按照"[desc] [str]"进行修改,并将修改内容输出,原文件保持不变其中 [desc] 部分格式为 [line][op],或 [start line],[end line][op],对 第[line] 行,或者 [start line] 到 [end line] 之间所有行进行 [op] 操作
其中行编号1-based,行区间为闭区间[op] 可以为以下操作:
a: 新增行d: 删除行c: 替换(用[str]替换选中所有行)d: 删除(一般没有[str]部分)i: 插入s: 替换("[start line],[end line]s/[old pattern]/[new pattern]/")
全局替换: s/[old pattern]/[new pattern]/g
sed -n: (--silent) 只显示处理后的结果
example
cat [file] | sed -n '5,7p' #显示文件5到7行
cat [file] | sed '/oo/d' #删除所有包含"oo"的行,其他行输出