linux显示文件内容并保存到某文件中,如何在Linux终端中以列格式显示文件内容...

有时需要在Linux中的命令行上以列格式显示文件的内容。幸运的是,有一个Linux命令Column,可让您以列格式显示文件的内容。也就是,可以将文本从行转为列显示,或者说做行列转换。今天,我们将研究Column命令的基础知识,以及如何以最有用的方式使用它来格式化内容。对于本文,我使用Ubuntu 18.04 LTS来描述该过程。

Column(列)命令的语法

column命令的常规语法为:

$ colunm[参数]   [文件名]

在[参数]中,可以指定以下选项:

-s指定分隔符。

-c根据一行中允许的总字符来格式化输出。

-t创建表,默认情况下,定界符默认是空格,或使用–s选项指定的字符

-x默认情况下,行在列之前填充,但是使用此参数可以在填充行之前填充列

-n默认情况下,多个定界符合并为一个定界符。您可以使用–n参数禁用此行为。

-e默认情况下,空行将被忽略。您可以使用–e参数禁用此行为。

Column(列)命令用法

例如,我创建了一个测试文件名为“test”,其内容如下图所示。请注意,您可以用其他方式查看文件的内容,不一定要在终端中使用cat命令打开它。

通过按下启动终端Ctrl + Alt + T并输入:

$ cat [文件名]

我的测试文件如下所示:

2ec4f2f70f3fabd31a20097423eaa056.png

要查看column命令的实际作用,请键入column后跟文件名:

$ column [文件名]

通过输入以上命令,您将看到该命令已将文件的内容转换为列。

63b76c69a5be017c4986e25d30147e9d.png

这是对Column命令的最简单的解释。现在,我们将看到此命令的更多用法。

使用自定义定界符或分隔符

您可以在Column命令中使用自定义分隔符,该命令将告诉它何时应将内容拆分为新列。

我使用的测试文件包含下图所示的内容。它包含用逗号分隔的数据。

477c30c9f60ed623f4f997d61d0a5590.png

采用 -t参数以表格格式显示内容。默认情况下,它使用空格作为分隔符。

d293f97aca65370c7488fbac969a3268.png

要基于特定的分隔符分隔内容,请使用–s参数,后跟特定的分隔符或定界符,如以下命令语法所示:

$ column -t [-s分隔符] [文件名]

08d29a0960c37677d62cda8d1fdbbc4e.png

使用-n参数添加多个定界符

默认情况下,column命令用单个分隔符合并多个相邻的相同分隔符。例如,我们有一个示例文件,其中包含具有多个相邻分隔符的内容,如下图所示。

c12ca5db5accfbfcd7b1ed38dfdbbdf4.png

Column命令将多个分隔符视为一个分隔符,并将显示以下输出

fdbdcf09c94570c59e6bc7134419a66c.png

添加–n选项将禁用此行为。使用以下语法运行命令:

$ column  [-n] [-t] [-s 分隔符] [文件名]

5bbecca66189431f8e00fe40cc514f27.png

您会注意到前两列之间的空间,这意味着它没有将相邻的分隔符合并为一个分隔符。

使用-e参数添加空行

默认情况下,column命令将忽略空行。如果要在列中包含这些空行,请使用–e参数。

例如,我有以下示例文件,其中带有一些空行。

706bbc370553387fa880b8f711be178a.png

我已经使用了column命令,但是您可以看到column命令没有包含空行。

93bbf89d6599401616f5e0f7674d649e.png

要允许column命令在输出中包含该空行,请使用以下语法中的命令:

$column [-e] [-t] [-s 分隔符] [文件名]

966bc77ce1375cb8b9a7ce944797422d.png

您会注意到,空行现在包含在column命令的输出中。

使用-x参数在行之前填充列

Column命令通过先填充行,然后填充列。这可能不适用于某些文件的行列转换。但是,您可以更改此行为,并且可以在填充行之前填充列。为了清楚理解,请参见以下示例。

在此示例中,我有一个名为“a.txt”的测试文件,其中包含1-100的数字,每行一个数字。我们希望数字转为从左到右,从上到下,按行业排列。

但是使用Column命令将显示如下输出。但是,这不符合我们要求的排列意义。

31d399c13ec2e3972b7ba9bf6a21f856.png

为此,我们将使用–x参数。键入column,后跟–x和文件名。

$ column [-x] [文件名]

c5b6c532ca3a001cf78f74d895f761fa.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
toxy是.NET平台上的文件抽取框架,主要解决各种格式内容抽取问题,比如pdf, doc, docx, xls, xlsx等,尽管听上去支持了很多格式,但它的使用却是极其方便的,因为Toxy把复杂的抽取流程透明化,Toxy的用户根本不用知道内容是怎么抽出来的,这就是Toxy的重要意义。     另外Toxy的一大目标是取代IFilter成为跨平台.NET数据抽取解决方案,即支持Linux上的Mono。目前所有的测试用例都可以跑在Mono上,但是有少数没有过,正在逐步改进。从另一个层面讲,Toxy能将文件数据变成统一的结构化数据。目前Toxy支持的结构有string – 文本结构ToxyDom – Dom结构ToxySpreadsheet – 类似Excel的表单结构ToxyDocument – 类似Word的描述性文本结构ToxyEmail – 邮件结构,包括收件人、发件人、邮件内容、附件等ToxyBusinessCard – 名片结构ToxyMetadata – 元数据结构,主要包含文件的属性信息,比如作者、标题、照片大小、分辨率等。Toxy目前主要支持的文件格式及能抽取的内容此表更新至Toxy 1.4版本。文件格式支持抽取的结构化对象(抽取结果的类型)txtstringxmlToxyDomcsvstring, ToxySpreadsheetrtfstringpdfstring, ToxyDocumenthtm, htmlstring, ToxyDomvcfstring, ToxyBusinessCardzipstringmp3, ape, wav, flac, aifToxyMetadatajpeg, jpg, gif, tiff, pngToxyMetadataemlstring, ToxyEmailcnmToxyEmailxls, xlsxstring, ToxySpreadsheet, ToxyMetadatappt, pptxToxyMetadatadoc, docxstring, ToxyDocument, ToxyMetadata.vsd, .pub, .shw, .sldprt, pubx, vsdxToxyMetadata如何使用ToxyToxy的使用真的是极其简单,这里一点都不夸张,请看下面的例子:1234ParserContext context = new ParserContext("test.xlsx");ISpreadsheetParser parser = ParserFactory.CreateSpreadsheet(context);ToxySpreadsheet ss = parser.Parse();//处理抽取出来的数据这里的ToxySpreadsheet实例ss就是抽取出来的Excel数据,你可以直接用。ParserContext负责描述抽取上下文,告知Toxy要抽取的文件的路径,以及相关参数。ParserFactory是工厂模式类,负责所有解析器的实例化工作,它会根据传入文件的扩展名自动寻找合适的解析器。下面展示一下PDF文档的抽取代码,一样极其简单:123string path = TestDataSample.GetPdfPath("Sample1.PDF");var parser = new PDFTextParser(new ParserContext(path));string result = parser.Parse();这里返回的是string,也就是把PDF文档的内容直接抽取到string,通常这种代码lucene.NET这样的搜索引擎用的比较多。再来个ToxyMetadata的抽取例子:1234string path = Path.GetFullPath(TestDataSample.GetOLE2Path("TestEditTime.doc"));ParserContext context = new ParserContext(path);IMetadataParser parser = ParserFactory.CreateMetadata(context);ToxyMetadata x = parser.Parse();这里抽取的是doc文件的元数据信息,比如文件由什么应用程序创建(并非一定是Word),作者、标题、公司等信息。只要是文件属性详细信息列出来的东西,理论上都可以抽取出来。Toxy解析器的抽取参数Toxy的解析器不仅提供基本的抽取功能,同时也支持对抽取内容进行选择,这是通过ParserContext的Properties实现的。下面举一个Excel的抽取参数的例子:12345678ParserContext context = new ParserContext(TestDataSample.GetExcelPath(filename));ISpreadsheetParser parser = ParserFactory.CreateSpreadsheet(context);ToxySpreadsheet ss = parser.Parse();//抽取表的页头parser.Context.Properties.Add("ExtractSheetHeader", "1");//抽取表的页脚parser.Context.Properties.Add("ExtractSheetFooter", "1");ToxySpreadsheet ss2 = parser.Parse();这里的ExtractSheetHeader和ExtractSheetFooter是抽取器指定的参数,拼写不要出错,否则无效,后面的1表示开启,当然如果你喜欢,你也可以用on或者true,解析器能自动识别出这3种表示true的方式,如果想表示false,你可以用0, off或者false表示。另外SpreadsheetParser还支持是否填充空白单元格(FillBlankCells)、显示公式结果(ShowCalculatedResult)、包含批注(IncludesComments)等操作,有兴趣的可以玩玩。当然每个抽取器能够使用的参数是不一样的,本文就不详细一一列举了,在以后的文章,我们会详细列举每个抽取器的参数及对应抽取内容。Toxy高级扩展功能Toxy除了提供基础的抽取功能,也提供一些高级的对象转换服务,比如ToxySpreadsheet转DataSet,可以直接把Excel的数据转换成DataSet,方便调用和处理。代码超级简单,如下所示:1234ParserContext c=new ParserContext(@"c:employee.xls");var parser=ParserFactory.CreateSpreadsheet(c);var spreadsheet= parser.Parse();DataSet ds = spreadsheet.ToDataSet();就这么4行代码,是不是超级爽呀!另外,ToxySpreadsheet的子结构ToxyTable支持ToDataTable操作,用法也是类似的,直接调用即可。Toxy功能展望Toxy 1.x的目标是支持足够多的文件格式,并转换成统一的结构进行抽取。而Toxy 2.x-3.x的目标是支持相似文件的互操作(相互转换),例如Excel转csv, Excel转html, Word转PDF等,当然这个路有点长,慢慢来。 标签:文件抽取框架
1. 简介 ....................................................................... 1 1.1. 什么是 TortoiseSVN? ................................................ 1 1.2. TortoiseSVN 的历史 .................................................. 1 1.3. TortoiseSVN 的特性 .................................................. 1 1.4. 安装 TortoiseSVN .................................................... 2 1.4.1. 系统要求 ...................................................... 2 1.4.2. 安装 .......................................................... 2 1.4.3. 语言包 ........................................................ 2 1.4.4. 拼写检查器 .................................................... 3 2. 基本概念 ................................................................... 4 2.1. 版本库 .............................................................. 4 2.2. 版本模型 ............................................................. 4 2.2.1. 文件共享的问题 ................................................ 4 2.2.2. 锁定-修改-解锁 方案 ........................................... 5 2.2.3. 复制-修改-合并 方案 ........................................... 6 2.2.4. Subversion 怎么做? ........................................... 8 2.3. Subversion 实战 ..................................................... 9 2.3.1. 工作副本 ...................................................... 9 2.3.2. 版本库的 URL ................................................. 10 2.3.3. 修订版本 ..................................................... 11 2.3.4. 工作副本怎样跟踪版本库 ....................................... 12 2.4. 摘要 ............................................................... 12 3. 配置服务器 ................................................................ 14 3.1. 基于 Apache 的服务器 ............................................... 14 3.1.1. 简介 ......................................................... 14 3.1.2. 安装 Apache .................................................. 14 3.1.3. 安装 Subversion .............................................. 15 3.1.4. 配置 ......................................................... 15 3.1.5. 多版本库 ..................................................... 17 3.1.6. 路径为基础的授权 ............................................. 18 3.1.7. 使用 Windows 域认证 ......................................... 18 3.1.8. 多重认证源 ................................................... 20 3.1.9. 用 SSL 使服务器更安全 ........................................ 20 3.1.10. Using client certificates with virtual SSL hosts ............ 22 3.2. 基于 svnserve 的服务器 ............................................. 23 3.2.1. 简介 ......................................................... 23 3.2.2. 安装 svnserve ................................................ 23 3.2.3. 运行 svnserve ................................................ 24 3.2.4. Basic Authentication with svnserve ........................... 25 3.2.5. 使用 SASL 以便更安全 ........................................ 26 3.2.6. 使用 svn+ssh 认证 ........................................... 28 3.2.7. svnserve 基于路径的授权 ...................................... 28 4. 版本库 .................................................................... 29 4.1. 创建版本库 .......................................................... 29 4.1.1. 使用命令行工具创建版本库 ..................................... 29 4.1.2. 使用 TortoiseSVN 创建版本库 .................................. 29 4.1.3. 本地访问版本库 ............................................... 30 4.1.4. 访问网络共享磁盘上的版本库 ................................... 30 TortoiseSVN iii 4.1.5. 版本库布局 ................................................... 31 4.2. 版本库备份 .......................................................... 32 4.3. 钩子脚本 ............................................................ 32 4.4. 检出链接 ............................................................ 33 5. 日常使用指南 .............................................................. 34 5.1. 开始 ............................................................... 34 5.1.1. 图标重载 ..................................................... 34 5.1.2. 右键菜单 ..................................................... 34 5.1.3. 拖放 ......................................................... 36 5.1.4. 常用快捷方式 ................................................. 37 5.1.5. 认证 ......................................................... 37 5.1.6. 最大化窗口 ................................................... 38 5.2. 导入数据到版本库 .................................................... 38 5.2.1. 导入 ......................................................... 38 5.2.2. 导入适当的位置 ............................................... 40 5.2.3. 专用文件 ..................................................... 40 5.2.4. 引用的工程 ................................................... 40 5.3. 检出工作副本 ........................................................ 42 5.3.1. 检出深度 ..................................................... 43 5.4. 将你的修改提交到版本库 .............................................. 45 5.4.1. 提交对话框 ................................................... 45 5.4.2. 修改列表 ..................................................... 47 5.4.3. Excluding Items from the Commit List ......................... 47 5.4.4. 提交日志信息 ................................................. 47 5.4.5. 提交进程 ..................................................... 48 5.5. 用来自别人的修改更新你的工作副本 .................................... 49 5.6. 解决冲突 ............................................................ 51 5.7. 获得状态信息 ........................................................ 52 5.7.1. 图标重载 ..................................................... 52 5.7.2. 在 Windows 资源管理器的 TortoiseSVN 列 ..................... 53 5.7.3. 本地与远程状态 ............................................... 54 5.7.4. 查看差别 ..................................................... 55 5.8. 修改列表 ............................................................ 55 5.9. 版本日志对话框 ...................................................... 58 5.9.1. 调用版本日志对话框 ........................................... 58 5.9.2. 版本日志动作 ................................................. 59 5.9.3. 获得更多信息 ................................................. 59 5.9.4. 获取更多的日志信息 ........................................... 62 5.9.5. 合并跟踪特性 ................................................. 62 5.9.6. 修改日志消息和作者 ........................................... 63 5.9.7. 过滤日志信息 ................................................. 64 5.9.8. 统计信息 ..................................................... 64 5.9.9. 离线方式 ..................................................... 66 5.9.10. 刷新视图 .................................................... 67 5.10. 查看差异 ........................................................... 67 5.10.1. 文件差异 .................................................... 67 5.10.2. 行结束符和空白选项 .......................................... 68 5.10.3. 比较文件夹 .................................................. 68 5.10.4. 使用 TortoiseIDiff 进行比较的图像 ........................... 69 5.10.5. 其他的比较/合并工具 ......................................... 70 5.11. 添加新文件和目录 ................................................... 71 5.12. Copying/Moving/Renaming Files and Folders .......................... 72 5.13. 忽略文件和目录 ..................................................... 73 5.13.1. 忽略列表的模式匹配 ........................................ 74 5.14. 删除、移动和改名 ................................................... 75 5.14.1. 正在删除文件/文件夹 ......................................... 75 5.14.2. 移动文件文件夹 ............................................ 76 5.14.3. 改变文件名称大小写 .......................................... 77 TortoiseSVN iv 5.14.4. 处理文件名称大小写冲突 ...................................... 77 5.14.5. 修复文件改名 ................................................ 77 5.14.6. 删除未版本控制的文件 ........................................ 78 5.15. 撤消更改 ........................................................... 78 5.16. 清理 .............................................................. 79 5.17. 项目设置 ........................................................... 79 5.17.1. Subversion 属性 ............................................. 80 5.17.2. TortoiseSVN 项目属性 ........................................ 84 5.18. 分支/标记 .......................................................... 85 5.18.1. 创建一个分支或标记 .......................................... 86 5.18.2. 检出或者切换 ................................................ 87 5.19. 正在合并 ........................................................... 88 5.19.1. 合并指定版本范围 ............................................ 89 5.19.2. 复兴分支 .................................................... 91 5.19.3. 合并两个不同的目录树 ........................................ 91 5.19.4. 合并选项 .................................................... 92 5.19.5. 预览合并结果 ................................................ 93 5.19.6. 合并跟踪 .................................................... 94 5.19.7. 子合并期间处理冲突 .......................................... 94 5.19.8. Merge a Completed Branch ................................... 95 5.20. 锁 ................................................................ 96 5.20.1. 锁定在Subverion是如何工作的 ............................... 96 5.20.2. 取得锁定 .................................................... 97 5.20.3. 释放锁定 .................................................... 97 5.20.4. 检查锁定状态 ................................................ 98 5.20.5. 让非锁定的文件变成只读 ...................................... 98 5.20.6. 锁定钩子脚本 ................................................ 98 5.21. 创建并应用补丁 ..................................................... 99 5.21.1. 创建一个补丁文件 ............................................ 99 5.21.2. 应用一个补丁文件 ........................................... 100 5.22. 谁修改了哪一行? .................................................. 100 5.22.1. 追溯文件 ................................................... 101 5.22.2. 追溯不同点 ................................................. 103 5.23. 版本库浏览器 ...................................................... 103 5.24. 版本分支图 ........................................................ 105 5.24.1. 版本图节点 ................................................. 106 5.24.2. Changing the View ......................................... 106 5.24.3. 使用图 ..................................................... 107 5.24.4. 刷新视图 ................................................... 107 5.25. 导出一个Subversion工作副本 ........................................ 108 5.25.1. 从版本控制里移除删除工作副本 ............................... 108 5.26. 重新定位工作副本 .................................................. 109 5.27. 与 BUG 跟踪系统/问题跟踪集成 ...................................... 109 5.27.1. Adding Issue Numbers to Log Messages ....................... 110 5.27.2. Getting Information from the Issue Tracker ................. 112 5.28. 与基于 WEB 的版本库浏览器集成 ..................................... 113 5.29. TortoiseSVN的设置 ................................................. 114 5.29.1. 常规设置 ................................................... 114 5.29.2. 图标叠加设置 ............................................... 122 5.29.3. 网络设置 ................................................... 125 5.29.4. 外部程序设置 ............................................... 126 5.29.5. 已保存数据的设置 ........................................... 129 5.29.6. 日志缓存 ................................................... 130 5.29.7. 客户端钩子脚本 ............................................. 132 5.29.8. TortoiseBlame 的设置 ....................................... 136 5.29.9. 注册表设置 ................................................. 136 5.29.10. Subversion 的工作文件夹 ................................... 137 5.30. 最后步骤 .......................................................... 137 TortoiseSVN v 6. SubWCRev 程序 ............................................................ 138 6.1. SubWCRev 命令行 ................................................... 138 6.2. 关键字替换 ......................................................... 138 6.3. 关键字例子 ......................................................... 139 6.4. COM 接口 .......................................................... 140 A. 常见问题(FAQ) ............................................................ 142 B. 如何实现 … .............................................................. 143 B.1. 一次移动或复制多个文件 ............................................. 143 B.2. 强制用户写日志 ..................................................... 143 B.2.1. 服务器端的钩子脚本(Hook-script) ............................. 143 B.2.2. 工程(Project)属性 ........................................... 143 B.3. 从版本库里更新选定的文件到本地 ..................................... 143 B.4. Roll back (Undo) revisions in the repository ...................... 144 B.4.1. 使用版本日志对话框 .......................................... 144 B.4.2. 使用合并对话框 .............................................. 144 B.4.3. 使用 svndumpfilter .......................................... 144 B.5. 比较一个文件的两个版本 ............................................. 145 B.6. 包含一个普通的子项目 ............................................... 145 B.6.1. 使用 svn:externals .......................................... 145 B.6.2. 使用嵌套工作副本 ............................................ 145 B.6.3. 使用相对位置 ................................................ 145 B.7. 创建到版本库的快捷方式 ............................................. 146 B.8. 忽略已经版本控制的文件 ............................................. 146 B.9. 从工作副本删除版本信息 ............................................. 146 B.10. 删除工作副本 ...................................................... 147 C. 对管理员有用的技巧 ....................................................... 148 C.1. 通过组策略部署 TortoiseSVN ......................................... 148 C.2. 重定向升级检查 ..................................................... 148 C.3. 设置 SVN_ASP_DOT_NET_HACK 环境变量 ................................. 149 C.4. 禁用上下文菜单 ..................................................... 149 D. TortoiseSVN 操作 ......................................................... 151 D.1. TortoiseSVN 命令 .................................................. 151 D.2. TortoiseIDiff 命令 ................................................ 154 E. 命令行交叉索引 ........................................................... 155 E.1. 约定和基本规则 ..................................................... 155 E.2. TortoiseSVN 命令 .................................................. 155 E.2.1. 检出 ........................................................ 155 E.2.2. 更新 ........................................................ 155 E.2.3. 更新到版本 .................................................. 155 E.2.4. 提交 ........................................................ 156 E.2.5. 差异 ........................................................ 156 E.2.6. 显示日志 .................................................... 156 E.2.7. 检查所作的修改 .............................................. 157 E.2.8. 版本图 ...................................................... 157 E.2.9. 版本库浏览器 ................................................ 157 E.2.10. 编辑冲突 ................................................... 157 E.2.11. 已解决 ..................................................... 157 E.2.12. 改名 ....................................................... 157 E.2.13. 删除 ....................................................... 157 E.2.14. 恢复 ....................................................... 157 E.2.15. 清理 ....................................................... 158 E.2.16. 获得锁 ..................................................... 158 E.2.17. 释放锁 ..................................................... 158 E.2.18. 分支/标记 .................................................. 158 E.2.19. 切换 ....................................................... 158 E.2.20. 合并 ....................................................... 159 E.2.21. 输出 ....................................................... 159 E.2.22. 重新定位 ................................................... 159 TortoiseSVN vi E.2.23. 在当前位置创建版本库 ....................................... 159 E.2.24. 添加 ....................................................... 159 E.2.25. 导入 ....................................................... 159 E.2.26. 追溯 ....................................................... 159 E.2.27. 加入忽略列表 ............................................... 160 E.2.28. 创建补丁 ................................................... 160 E.2.29. 应用补丁(Apply Patch) ...................................... 160 F. 实现细节 ................................................................. 161 F.1. 图标重载 ........................................................... 161 G. 用 SSH 使服务器更安全 .................................................... 163 G.1. 配置 Linux 服务器 ................................................. 163 G.2. 配置 Windows 服务器 ............................................... 163 G.3. 用于 TortoiseSVN 的 SSH 客户端工具 ................................ 164 G.4. 创建 OpenSSH 证书 ................................................. 164 G.4.1. 使用 ssh-keygen 创建密钥 .................................... 164 G.4.2. 使用 PuTTYgen 创建密钥 ...................................... 164 G.5. 使用 PuTTY 测试 ................................................... 165 G.6. 使用 TortoiseSVN 测试 SSH ......................................... 165 G.7. SSH 配置参数 ...................................................... 166 术语表 ....................................................................... 168 索引 ......................................................................... 171

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值