在 Windows 下,我们经常可以在各种文本编辑工具中将某些常用的命令保存起来,进行一系列的自动脚本,来帮助我们执行批处理命令,在 Linux 下,我们也可以使用某些工具来高效,轻松地来进行这些工作,本文以 gnome 下的自带图形文本编辑器 gedit 来说明一个简单的例子。
OK,让我们开始:
1. 打开 gedit ,并找到菜单 “编辑” -> “首选项”,在 “插件” 选项,选择 “外部工具”(gedit默认没有加载此插件,我们需要手动加载它),这样,我们就可以在 gedit 中使用各种外部命令和 shell 脚本。
2. 在“工具”菜单,我们可以看到“外部工具”,打开它,在此对话框我们可以进行各种脚本和工具的设定,当然 gedit 已经为我们提供了几个诸如“构建”,“删除尾部空格”等小的脚本,我们也可通过 “新建” 按钮自定义脚本,现在我们新建一个:点击“新建”,工具名和描述叫做 “格式化文本”,将鼠标键入“快捷键”框,并同时按下 “ALT+2” 键,“输入” 选当前文档,“输出” 选替换当前文档,“适用范围”选全部文档,因为我们需要的是将复制过来的文本进行一下格式的替换,例如段落间空行和每自然段前置两个全角空格之类的文章格式。
3. 现在我们开始编写处理命令,在“命令”中键入:
#!/bin/sh
sed 's/ //g;s/ //g;s/^ $//g;s/^/ /g';
我们来看一下这两行代码的含义和他们能完成的工作。
第一行:#!/bin/sh,这是一个脚本表示行,/bin/sh 向系统声明了这个脚本是一个shell脚本,当然 Linux 系统中有很多类型的脚本,perl,c,php,python,但是我们现在只需要shell脚本。
第二行:sed 's/ //g;s/ //g;s/^ $//g;s/^/ /g';,这就看起来比较可怕了,不要怕,经过我的解释,你会对此一清二楚,首先 “sed” 是一个shell命令,比方说ls,mkdir,copy等等都是,“sed” 的用途就是处理各种文本,拆分,拼合,查找,替换等待,具体可以 google 一下 sed,我们现在用sed仅仅完成一个简单的任务:“替换”,sed的替换是这样的一种命令格式:
sed 's/替换前的内容/替换后的内容/g(g代表全文检索,不带g代表当前行检索)'
“;” 分号代表了分割两个命令段,即“第一类替换;第二类替换;...”,够清楚了吗?好了,我们再回头看一下我们的代码,很简单,我们进行当前文档的全文替换,将“半角空格和全角空格”替换成“”,就是清除这两项,将文章头尾(“^”表示开头,“$”表示结尾)的全角空格全部去除,重新将每段落开头加上两个全角空格。
4. 我们完成了自己的“格式化文本”的脚本编写工作,现在来试试。随便复制一段文章到 gedit,按下“ALT+2”组合键,Oh!文章按照我们的既定格式重新排版了,看上去很整齐!
虽然这个小工具还很粗糙,还不能处理很多高级的替换命令,但这只是一个开头,聪明的你应该可以举一反三,自己定义更为强大的处理脚本了。