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"的行,其他行输出