前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux系列之文本操作命令

Linux系列之文本操作命令

作者头像
chuckQu
发布2022-08-19 16:21:09
1.2K0
发布2022-08-19 16:21:09
举报
文章被收录于专栏:前端F2E

前言

Linux 有八个常用的文本操作命令:catheadtailnlgrepsedmoreless。本文介绍它们的区别和简单用法。

cat命令

显示文本的最基本命令。

代码语言:javascript
复制
cat file
代码语言:javascript
复制
cat /usr/share/metasploit-framework/data/wordlists/passwd.lst

image.png

cat命令不是最方便的命令,但却十分快捷。

head命令

该命令将显示文件的前10行(默认情况下)。

代码语言:javascript
复制
head filename

如果你想显示指定的行数,请在head命令后使用-来指定。

代码语言:javascript
复制
head -20 passwd.lst

image.png

tail命令

该命令与head命令相反,将显示文件的最后10行(默认情况下)。

代码语言:javascript
复制
tail filename

如果你想显示指定的行数,请在tail命令后使用-来指定。

代码语言:javascript
复制
tail -20 passwd.lst

image.png

nl命令

显示带有行号的文件。

代码语言:javascript
复制
nl file

如果你用管道输出到它,它使参考变得更容易。

代码语言:javascript
复制
head -35 passwd.lst | nl

image.png

grep命令

可能是使用最广泛的文本处理命令。关于这个命令,有好几本书。

代码语言:javascript
复制
cat file | grep keyword

它可以让你过滤显示文件的内容。

代码语言:javascript
复制
cat passwd.list | grep output

image.png

结合前面的命令,让我们查看passwd.lst第20至50行中所有含有23的字词。

代码语言:javascript
复制
head -50 passwd.lst | tail -30 | grep 23 | nl
  • head -50 passwd.lst 表示我们想要显示前50行。
  • tail -30 表示想要从head命令得到的前50行里的最后30行,也就是20-50行。
  • grep 23 将只显示包含23的行。
  • nl将显示行数。

image.png

sed命令

这个命令可以让你搜索出现的单词或测试模式,然后对它执行一些操作。类似于Windows中的查找和替换。sed中的命令以单个字母开头。

s是替换命令:

代码语言:javascript
复制
echo "gwyn" | sed 's/gwyn/gps'

image.png

让我们使用sedsnort.conf文件中找到mysl的所有实例,并将其替换为MySQL,并将该文件保存为当前目录中的snorttest.conf

代码语言:javascript
复制
sed s/searchterm/replacementterm/occurence

这里的g代表全局,意味着替换发生的所有实例。

代码语言:javascript
复制
sed s/mysql/MySQL/g /etc/snort/snort.conf > snorttest.conf

image.png

你可以通过在末尾使用/1/2等来指定你要替换的行的哪一次出现。

我们假设我们有一个textfile.txt文件:

代码语言:javascript
复制
gwyn gps
gwyn gps gps
gwyn gps gps gps

我们如何才能在每一行中只将第二次出现的gps替换为gwyneth

代码语言:javascript
复制
sed s/gps/gwyneth/2 textfile.txt > sample.txt

image.png

现在,如果我们想只在第三行中替换第二个出现的内容,该怎么办?我们可以在s命令的前面加上一个数字来表示。

代码语言:javascript
复制
sed 3s/gps/gwyneth/2 textfile.txt > sample2.txt

image.png

让我们看看在snort.conf 中,mysql每次出现的地方:

image.png

并将第二行中出现的每一个mysql替换为dogs,并将其保存到sample2.txt

image.png

more命令

每次显示文件的一页,并允许分页。

代码语言:javascript
复制
more file
代码语言:javascript
复制
more snort.conf

image.png

less命令

more命令类似,只不过更加实用。毕竟少即是多。

代码语言:javascript
复制
less file

如果你按下/键,less将允许你在文件中搜索术语。

代码语言:javascript
复制
less snort.conf

在这里,我按下/键,并键入选项:

image.png

less带我到第一个发生的地方,按n键是下一个。

image.png

总结

就这样吧,我终于开始理解把这些命令连在一起的强大力量了。

原文链接:https://www.madebygps.com/an-intro-to-text-manipulation-in-linux/[1]

参考资料

[1]

https://www.madebygps.com/an-intro-to-text-manipulation-in-linux/: https://www.madebygps.com/an-intro-to-text-manipulation-in-linux/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端F2E 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • cat命令
  • head命令
  • tail命令
  • nl命令
  • grep命令
  • sed命令
  • more命令
  • less命令
  • 总结
    • 参考资料
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档