同步操作将从 deepinwiki/wiki 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
[TOC]
字符串(文本)处理为什么值得拿出来说一下?事实上,字符串的处理是编程开发中非常重要的处理对象。我们日常面对的很多东西实际上都是文本处理,其次才是图像,音频。图像音频这些相对来说比较专业,比较小众。但字符串处理可以说涉及到方方面面,各种领域。
尤其在linux中。如果你听说过一句,linux什么都是文件,其次,也可以说linux处处皆文本。linux世界中是很反对二进制的,因为二进制是不开放的,难以被其他程序员对接起来,而文本是开放的,只要有个文本编辑器,你就可以修改应用的配置。
因此,字符串处理,在linux中可以说是非常通用的一门技能,只要能处理好文本,你就可以对接大量的命令,可以处理他们的文本输出,修改它们的配置,进行整合形成一组可执行的功能强大的脚本。
即便你不是专业的程序员。
linux 中有着著名的文本处理三剑客,grep,sed,awk。这三剑客功能强大,学习难度也高,但是他们值得你学习。而一些相对比较简单的工具,某些时候也可以结合起来,也能展现强大的表达能力。
单个命令,多少有些无趣,但是整合起来就非常有意思。应该把重点放在如何整合运用之上,而不应该单独去使用他们,那样太枯燥。
下面介绍出场运动员:
-d
可以指定分隔符,--output-delimiter
和输出的分隔符,-f
输出的列,但无法处理重复的分隔符-R
可打乱次序,-r
逆序,-u
去重,-k
指定排序的列。-c
计算重复数,-d
查询重复行,-u
查询无重复行-l
行数,-c
字节数,-w
单词数,-m
字符数例子:
观察/etc/passwd
文件,这个保存帐号的文件,不同的帐号貌似有几种不同的登录 shell,不妨根据 shell 的不同来分类输出一下相关的帐号。
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
……等
# 输出第1列和第7列
# 即root:/bin/bash
cut -d":" -f1,7 /etc/passwd
# 根据shell列排序
# sort的分隔符是空格,所以cut要改变输出分隔符
cut -d":" -f1,7 --output-delimiter=" " /etc/passwd | sort -k 2
# 同一种shell有多少个账户
cut -d":" -f7 /etc/passwd | sort | uniq -c
# 整合,并调整排版
join -1 2 -2 2 -o 1.1,1.2,2.1 <(cut -d":" -f7 /etc/passwd | sort | uniq -c) <(cut -d":" -f1,7 --output-delimiter=" " /etc/passwd | sort -k 2)
通过层层递进, 利用管道来融合多组命令,最终达到我们想要的效果。
例子二:
我们知道,一个程序要运行,并非只有命令本身即可,它实际上还是会依赖相关的库文件。假设我们要拷贝一个命令到另一台电脑,就应该把相关的库文件一并拷贝过去。这对于简单的命令是可行的,复杂的程序它还会依赖各种数据和配置。
比如,/bin/ls
这个程序,我们可以通过ldd这个命令查询它依赖的库:
# 查询依赖的库
ldd /bin/ls
# 输出:
linux-vdso.so.1 (0x00007ffe4e12e000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f61c573a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f61c5579000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f61c5505000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f61c5500000)
/lib64/ld-linux-x86-64.so.2 (0x00007f61c57b5000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f61c54df000)
我们能不能够从这个信息中提取相关依赖文件,并进行自动化的打包呢?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。