若是一个文件内容中含有若干tab和空格,我们该如何将这些格式统一呢?
例如:
test2文件,就有tab和空格,而且还有多个tab和空格连到一起。这样的话,就需要将格式统一
首先我们使用命令:sed 's/\t\t*/\t/g' test2>test3 //将若干的tab都替换为一个tab
其次,我们我们使用命令:sed ‘s/ */\t/g’ test3 >test4 //将若干个空格都替换为一个tab,注意*前有2个空格
若是有tab和空格相连的情况,可以再使用一次sed 's/\t\t*/\t/g' 或者将上面的2个命令顺序颠倒下,以保证所有的tab和空格都替换为统一的一个tab了。
这里还需要注意正则表达式中的一个字符*
因为:一个* 表示“重复0个或多个前面的RE字符”即可以用来代表任意(0个或多个)字符,
因此 a* 表示“拥有空字符或一个a以上的字符”。特别注意,因为允许空字符(就是不管是否有字符都可以的意思),因此,grep ‘a*' filename 将会把filename的所有内容都哦显示在屏幕上。
如果是aa* 表示:第一个a肯定要存在,第二个a则可有可无的,所以凡是含有a、aa、aaa、aaaa、aaaaa甚至更多的a的都是负责aa*的要求的。
本文中我们在统一tab和空格的时候就是使用的这个正则表达式。
转载于:https://blog.51cto.com/56214415/375892