前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >21.linux 文件管理命令:comm比较排序文件\fmt编排文本文件\tr转换字符

21.linux 文件管理命令:comm比较排序文件\fmt编排文本文件\tr转换字符

原创
作者头像
鱼多多
发布2025-01-13 09:20:23
发布2025-01-13 09:20:23
7700
代码可运行
举报
文章被收录于专栏:LinuxLinux
运行总次数:0
代码可运行

linux 文件管理命令:wc输出文件中的行数、单词数、字节数\comm比较排序文件\join将两个文件中指定栏位内容相同的行连接起来\fmt编排文本文件\tr转换字符

wc:输出文件中的行数、单词数、字节数

  • 作用:对每个文件输出行、单词和字节统计数,如果指定了多于一个文件,则还有一个行数的总计。如果指定的文件是“-”,则读取标准输入。
  • 用法:wc 选项...文件
  • 主要选项如下。

主要选项如下:

命令

描述

-c, --bytes, --chars

输出字节统计数。

-l, --lines

输出换行符统计数

-L, --max-line-length

输出最长的行的长度

-w, --words

输出单词统计数。

案例练习

显示文件 hello.c 中的单词数。

代码语言:shell
复制
# wc -w hello.c
SSSS 
20 hello.c

comm:比较排序文件

  • 作用:逐行比较两个已排序的文件。
  • 用法:comm [选项]...文件 1 文件 2
  • 主要选项如下

如果不附带选项,程序会生成三列输出。第一列包含文件 1 特有的行,第二列包含文件 2 特有的行,而第三列包含两个文件共有的行。

命令

描述

-1

不输出文件 1 特有的行。

-2

不输出文件 2 特有的行。

-3

不输出两个文件共有的行。

--check-order

检查输入是否被正确排序,即使所有输入行均成对。

--nocheck-order

不检查输入是否被正确排序。

--output-delimiter=STR

依照 STR 分列

--help

显示此帮助信息并退出。

--version

显示版本信息并退出。

案例练习

比较排序 FILE1 和 FILE2,共有部分不显示。

代码语言:shell
复制
comm -3 FILE1 FILE2 
SSSS 
222 

join:将两个文件中指定栏位内容相同的行连接起来

  • 作用:找出两个文件中指定栏位内容相同的行并加以合并,再输出到标准输出设备。
  • 用法:join [选项]文件 1 文件 2
  • 主要选项如下

针对每一对具有相同内容的输入行,整合为一行写到标准输出,默认的内容连接区块是由 第一个空白符代表的分界符号。当文件 1 或文件 2 都被指定为“-”时,程序将从标准输入读 取数据。

命令

描述

-a 文件编号

文件编号的值可以是 1 或 2,分别对应文件 1 和文件 2。此选项用于根据指定文件编号输出不成对的行目。

-e 字符

将缺失的输入区块替换为指定字符。

-i,--ignore-case

比较时忽略大小写。

-j 域

等于“-1 域-2 域”。

-o 格式

按照指定格式构造输出行。

-t 字符

使用指定字符作为输入和输出的分隔符。

-v 文件编号

类似-a 文件编号,但禁止组合输出行。

-1 域

在文件 1 的此域组合。

-2 域

在文件 2 的此域组合。

--check-order

检查输入行是否正确排序,即使所有输入行均是成对的。

--nocheck-order

不检查输入是否正确排序。

--header

将首行视作域的头部,直接输出而不对其进行匹配。

--help

显示此帮助信息并退出。

--version

显示版本信息并退出。

fmt:编排文本文件

  • 作用:从指定的文件里读取内容,将其按照指定格式重新编排后,输出到标准输出设备。

若指定的文件名为“-”,则 fmt 命令会从标准输入设备读取数据。

  • 用法:fmt -宽度... 文件...

重新格式化文件中的每个段落并输出到标准输出。

选项“-宽度”是“--width=数字”的缩写。

  • 主要选项如下。

长选项必须使用的参数对于短选项也是必须使用的。

命令

描述

-c --crown-margin

保持前两行的缩进。

-p,--prefix=字符串

只对以指定字符串开头的行重新格式化,将前缀重新附着到被重新格式化的行上。

-s,--split-only

分割过长的行,但不自动补足。

-t,--tagged-paragraph

缩进首行以使其不同于第二行。

-u,--uniform-spacing

每两个单词间保留一个空格,每句之后保留两个空格。

-w,--width=宽度

最大行宽(默认为 75 列宽度)。

--help

显示此帮助信息并退出。

--version

显示版本信息并退出。

应用实例如下。

重新排版 hello.c 文件。

代码语言:bash
复制
  # fmt hello.c 
  /* hello.c - Canonical "Hello, World!" program */ #include <stdio.h> 
  int main(void) { 
   	  printf("Hello, Linux programming world!\n"); return 0; 
  } 

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 中的文字大小写进行转换。

代码语言:c
代码运行次数:0
复制
# 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; 
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • wc:输出文件中的行数、单词数、字节数
  • 案例练习
  • comm:比较排序文件
    • 案例练习
  • join:将两个文件中指定栏位内容相同的行连接起来
  • fmt:编排文本文件
  • tr:转换字符
    • 案例练习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档