[ Shell入门教程 ] 字符串空格和文件空行删除
1、删除字符串中空格
(1)删除行首空格
echo " 123 45 " | sed -e 's/^[ \t]*//g' #输出123 45
(2)删除行尾空格
echo " 123 45 " | sed 's/[ \t]*$//g' #输出123 45
(3)删除前、后空格,不删除中间空格
echo " 123 45 " | sed -e 's/^[ \t]*//g' -e 's/[ \t]*$//g' #输出123 45
(4) 删除字符串中所有空格
echo " 123 567 " | sed 's/[[:space:]]//g' #输出12345 echo " 123 567 " | tr -d '[ \t]' #输出12345
2、删除文件中的空行
grep -v '^$' filename #打印非空行 sed '/^$/d' filename #打印非空行 sed -i '/^$/d' filename #原地置换,原文件删除空行 awk '!/^$/{print}' filename #打印非空行
3、实例
需求:删除文件中行首、行尾空格和文件中的空行
方法一
sed -i -e 's/^[ \t]*//g' -e 's/[ \t]*$//g' -e '/^$/d' filename
方法二
sed -i 's/^[ \t]*//g;s/[ \t]*$//g;/^$/d' filename