5 个最有用的 Linux 文本操作命令5 个最有用的 Linux 文本操作命令5 个最有用的 Linux 文本操作命令5 个最有用的 Linux 文本操作命令
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

5 个最有用的 Linux 文本操作命令

想要提升您的 Linux 游戏水平并了解有关文本操作的更多信息吗?以下是开始您的旅程的前五个 Linux 命令行工具。

Linux 开发人员遵循的理念是创建只完成一项任务并做得很好的小程序。以Linux文本处理工具为例,它们是轻量级的并且具有模块化功能。尽管这些文本操作工具在复杂性和功能上有所不同,但它们在图形用户界面不可用的环境中派上用场。

本文介绍了读取文件和使用正则表达式对所选文本执行操作的最佳 Linux 工具。它还涵盖了它们最基本的功能和示例,以便更好地理解。

1. grep

grep 是一个 Linux 文本操作实用程序,用于在文件或文本中搜索称为正则表达式的字符串或模式。 grep 工具属于包括egrep、fgrep 和grep 在内的实用程序家族,其中fgrep 是最快的,而grep 是最简单的。

使用 grep 的一般语法如下:

grep -options string filename

例如,要在 /etc/passwd 文件中搜索单词“root”:

grep root /etc/passwd

一些标准的命令行示例如下:

Options

Example

Description

-c

grep -c <string> ./bashrc

Count the number of lines in which the string exists

-i

grep -i <string> ./bashrc

Perform a case-insensitive search for the specified string

-o

grep -o <string> file

Prints only the matched string

-l

grep -l "passwd"

Prints file names in the current directory that match the pattern

-n

grep -n <string> file

Prints the line number along the line containing the specified string

string1|string2

grep "string1|string2" file

Find and prints multiple strings from a file

同样,您可以将 ^ 元字符与 grep 命令一起使用来显示以某些字符开头的所有匹配字符串。

例如,以下命令通过管道将 env 命令输出作为 grep 的输入,并显示以“HO”开头的变量:

env | grep ^HO

相关:Linux Grep 命令的实用示例

2.awk

awk 是一种功能强大的脚本语言和命令行文本操作工具,可以执行逐行扫描并将行与模式进行比较。 awk 命令的基本语法是在单引号和大括号之间定义的操作,后跟文件名。

awk '{action}' filename
awk '{pattern; action}' filename

该实用程序使用正则表达式搜索文件并执行操作参数中定义的功能。如果不设置模式,awk 会在每一行执行脚本,如下所示:

awk '{print $1}' awk_examples.txt

...其中 $1 显示 awk_examples.txt 文件的第一个字段。

以下命令通过将第二个字段“World”替换为“Alice”来对给定模式执行打印功能,并显示整行 ($0):

echo "Hello World" | awk '{$2="Alice"; print $0}'

输出 :

Hello Alice

同样,您可以使用上面命令中的函数 print $0 来模拟 grep 功能。

awk '/john/{print $0}' /etc/passwd
john:x:1001:1001::/home/john:/bin/sh

3.排序

sort 是另一个 Linux 命令行实用程序,可帮助您以排序的格式显示指定文本文件的内容。例如,您可以通过管道将 awk 命令的输出作为排序实用程序的输入,如下所示:

awk '{print $1}' awk_examples.txt | sort > sort_text.txt
cat sort_text.txt

输出 :

相关:如何在 Linux 中使用 sort 对文本文件进行排序

4.sed

sed 或流编辑器将输入作为字符流,并对指定文本执行过滤和文本转换(删除、替换和替换)。

您可以在脚本中使用它并以非交互方式编辑文件。因此,该实用程序最基本的目的是替换字符串/字符。一般语法是:

sed 's/string/substitution/option' file

使用随机句子创建一个文件来练习和理解该实用程序的工作原理。

让我们使用 -g 标志进行全局替换,将文件每一行中出现的单词“two”替换为“2”,如下:

sed 's/two/2/g' sed_examples.txt > sed_examples2.txt

同样,使用 -d 标志从文件中删除特定行:

sed '2d' sed_examples.txt

您还可以通过指定行号(4 s/two/2/p)来替换字符串,并仅打印替换的行,如下所示:

sed -n '4 s/two/2/p' sed_examples2.txt

上面命令中的 -n 标志禁用将输入流自动打印到输出。您可以使用此选项来用 sed 替换 grep 实用程序功能。

例如,您可以通过仅包含正则表达式模式 /two/p 来修改上面的命令,这样 -p 标志将仅将行打印到标准输出流。

sed -n '/two/p' sed_examples2.txt

相关:这 10 个 sed 示例将使您成为 Linux 高级用户

5. 切割

cut 是另一个命令行实用程序,可以从行或文件中剪切/提取部分文本。它根据指定的字段、字符或字节位置剪切文本,并将结果通过管道传输到标准输出。

该实用程序采用以下语法:

cut <options> file

使用 -b 选项可以使用指定字节或字节范围来剪切部分或内容:

cut -b 1 cut_examples.txt

使用 -c 标志通过指定字符的位置来提取文本:

cut -c 1,3,5 cut_examples.txt

最后,您还可以通过使用 -f 选项和用于空格或字段分隔符的 -d 指定字段来提取文本:

cut -d " " -f 1 cut_examples.txt

以下是包含示例和描述的范围列表,您可以将这些范围与字符 -c 和字节 -b 选项结合使用:

Range

Example

Description

n-

cut -c 7- filename

Extract character from nth integer till the end of the line

n-m

cut -b 7-15 filename

Extracts from integer n-m of each line from the input file

-m

cut -c -7 filename

Extracts lines starting from m till the end of the line

请注意,您无法使用字段 -f 选项定义文本提取的范围。

使用 Linux 命令操作文本

Linux 提供了许多用于处理和处理文件或文本的程序和工具。可能不需要全部学习它们,因为一旦您很好地掌握了其中一种工具,您就可以轻松地用另一种工具来填补空白,例如使用 sed 作为 grep 或 awk 作为 grep,但并非每个工具都如此。

此外,Linux 命令的学习曲线很陡峭,但是一旦您掌握了该技能,它们就会在任何 Linux 用户(尤其是系统管理员)的生活中变得非常有用和有效。

©2015-2025 艾丽卡 support@alaica.com