Linux 文件管理命令 tr col colrm fold iconv

2024-05-01 17:52

本文主要是介绍Linux 文件管理命令 tr col colrm fold iconv,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 2.Linux 文件管理命令
    • 2.49 tr:转换字符
      • 案例练习
    • 2.50 col:过滤控制字符
      • 案例练习
    • 2.51 colrm:删除指定的行
      • 案例练习
    • 2.52 fold:限制文件列宽
      • 案例练习
    • 2.53 iconv:转换给定文件的编码
      • 案例练习

2.Linux 文件管理命令

2.49 tr:转换字符

  • 作用:从标准输入设备读取数据,经过字符串转义后,输出到标准输出设备。

  • 用法:tr [选项]… SET1 [SET2]

  • 主要选项如下。

    从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。

    命令描述
    -c --crown-margin保持前两行的缩进。
    -p,--prefix=字符串只对以指定字符串开头的行重新格式化,将前缀重新附着到被重新格式化的行上。
    -s,--split-only分割过长的行,但不自动补足。
    -t,--tagged-paragraph缩进首行以使其不同于第二行。
    -u,--uniform-spacing每两个单词间保留一个空格,每句之后保留两个空格。
    -w,--width=宽度最大行宽(默认为 75 列宽度)。
    --help显示此帮助信息并退出。
    --version显示版本信息并退出。

    SET 是一组字符串,一般可按照字面含义理解。解析序列如下。

    命令描述
    \NNN八进制值为 NNN 的字符(1~3 个数位)。
    \反斜杠。
    \a终端鸣响。
    \b退格。
    \f换页。
    \n换行。
    \r回车。
    \t水平制表符。
    \v垂直制表符。
    字符 1-字符 2从字符 1 到字符 2 的升序递增过程中经历的所有字符。
    [字符*]在 SET2 中适用,指定字符会被连续复制直到吻合设置 1 的长度。
    [字符*次数]对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数。
    [:alnum:]所有的字母和数字。
    [:alpha:]所有的字母。
    [:blank:]所有呈水平排列的空白字符。
    [:cntrl:]所有的控制字符。
    [:digit:]所有的数字。
    [:graph:]所有的可打印字符,不包括空格。
    [:lower:]所有的小写字母。
    [:print:]所有的可打印字符,包括空格。
    [:punct:]所有的标点字符。
    [:space:]所有呈水平或垂直排列的空白字符。
    [:upper:]所有的大写字母。
    [:xdigit:]所有的十六进制数。
    [=字符=]所有和指定字符相等的字符。

    仅在 SET1 和 SET2 都给出,同时没有-d 选项的时候才会进行替换。仅在替换时才可能用到 -t 选项。如果需要,SET2 将被通过在末尾添加原来的末字符的方式补充到同 SET1 等长,SET2 中多余的字符将被省略。只有[:lower:]和[:upper:]以升序展开字符;在用于替换时的 SET2 中以成 对表示大小写转换。-s 作用于 SET1,既不替换也不删除,否则在替换或展开后使用 SET2 缩减。

案例练习

将 hello.c 中的文字大小写进行转换。

# cat hello.c | tr a-x A-X 
/* HELLO.C - CANONICAL "HELLO, WORLD!" PROGRAM */ 
#INCLUDE <STDIO.H> 
INT MAIN(VOID) 
{ PRINTF("HELLO, LINUX PROGRAMMING WORLD!\N"); RETURN 0; 
}

2.50 col:过滤控制字符

  • 作用:在许多 UNIX 说明文件里,都有 RLF 控制字符。当我们运用 Shell 特殊字符“>” 和“>>”把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col 命令则能有效滤 除这些控制字符。

  • 用法:col [-bfpx] [-l nline]

  • 主要选项如下:

    命令描述
    -b过滤掉所有的控制字符,包括 RLF 和 HRLF。
    -f滤除 RLF 字符,但允许将 HRLF 字符呈现出来。
    -x以多个空格字符来表示跳格字符。
    -l nline预设的内存缓冲区有 128 列,可以自行指定缓冲区的大小。

案例练习

过滤 cat 手册页的 RLF 和 HRLF 字符并且重定向到文件 cat.man.txt。

# man cat | col -b > cat.man.txt 

2.51 colrm:删除指定的行

  • 作用:从标准输入设备读取数据,转而输出到标准输出设备。如果不加任何参数,则该命 令不会过滤任何一行。

  • 用法:colrm [起始列 [终止列]]

  • 主要选项如下:

    命令描述
    -V, --version输出版本信息并退出。
    -h, --help显示此帮助并退出。

案例练习

删除 hello.c 文件第二行。

# colrm 2 < hello.c

2.52 fold:限制文件列宽

  • 作用:从指定的文件里读取内容,将超过限定列宽的列加入增列字符后,输出到标准输出 设备。若不指定任何文件名称,而所给予的文件名为“-”,则 fold 命令会从标准输入设备读取 数据。

  • 用法:fold [选项]… [文件]…

  • 主要选项如下:

    命令描述
    -b—bytes以 Byte 为单位计算列宽,而非采用行数编号为单位。
    -s—spaces以空格字符作为换列点。
    -w<每列行数>--width<每列行数>使用指定的列宽代替默认的 80。

案例练习

调整 hello.c 最多宽度为 25 个字符显示。

# fold -w 25 hello.c

2.53 iconv:转换给定文件的编码

  • 作用:转换给定文件的编码。

  • 用法:iconv [选项…] [文件…]

  • 主要选项如下:

    输入/输出格式规范如下:

    命令描述
    -f, --from-code=名称原始文本编码。
    -t, --to-code=名称输出编码。

    信息如下:

    命令描述
    -l, --list列举所有已知的字符集。

    输出控制如下:

    命令描述
    -c从输出中忽略无效的字符。
    -o, --output=FILE输出文件。
    -s, --silent关闭警告。
    verbose打印进度信息。
    -?, --help给出该系统求助列表。
    usage给出简要的用法信息。
    -V, --version打印程序版本号。

案例练习

显示目前系统支持的字符集。

# iconv -l|more 
437// 
500// 
500V1// 
850// 
…

这篇关于Linux 文件管理命令 tr col colrm fold iconv的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952305

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Linux命令rm如何删除名字以“-”开头的文件

《Linux命令rm如何删除名字以“-”开头的文件》Linux中,命令的解析机制非常灵活,它会根据命令的开头字符来判断是否需要执行命令选项,对于文件操作命令(如rm、ls等),系统默认会将命令开头的某... 目录先搞懂:为啥“-”开头的文件删不掉?两种超简单的删除方法(小白也能学会)方法1:用“--”分隔命