Linux对文本操作命令及正则表达式:
cat
cat 是 concatenate 的缩写,所以它的作用其实是连接文件。但默认情况下它会将连接文件的结果送到标准输出。所以我们常用来显示文件内容。类似于 dos 中的 type。
more
当一个文件的内容超过一屏后,我们可以用 more 这个指令来逐屏 察看 文件内容。
less
less 在 more 的基础上,更可以逐行 察看 ,前后翻页。
head
head 显示文件开头部分内容,默认显示前十行参数 --lines 或者 –n 指明显示行数基本格式:
tail
tail 显示文件结念如旦尾部分内容,命令用法同 head,参数 -f 显示文件的纪实更新,用于监视日志文件
tail 默认显示文件列表中每个文件的后橡闷 10 行,如果没有文件名或文件名为“-”则其从标准输入中读取文件,如果有多个文件则其会在文件前面加上“==>文件名<==”以便区别。
# tail /etc/mail/sendmail.mc 默认查看文件的后 10 行内容
# tail –n 20 /etc/passwd 查看文件后 20 行内容
注意: # tail –f /var/log/message 实时监控日志文件更新信息,非常重要
diff
diff 用于比较两个文件之间的区别,并送到标准输出。输出时先报告两个文件的哪一行不同。基本格式:
参数:
uniq 用于去除文本中相邻的重复行。
-u 参数可以只显示那些没有被重复过的行。 -d 显示有被重复过仔扰的行。
cut
cut 可以根据一个指定的标记(默认是 tab)来为文本划分列,然后将此列显示。使用权限:所有使用者
基本格式: cut -cnum1 -num2 filename
说明:显示每行从开头算起 num1 到 num2 的文字。
[root@uplooking root] $ cut –f1 –d: /etc/shadow 表示以 : 为分隔符,显示 /etc/shadow 的第一列 sort
sort 用来按各种需要重新排列文本,一般运用在一个管道之后。例如:
默认情况下 sort 按照字母顺序排列文本。
wc
wc 用来统计一个文件的行数、词数、字数并送到标准输出。也可以用-l(行数)、-w(词数)、-c(字数)来指定输出内容。
‘贰’ 以身作则,身正则令行
古语云:“身正则令行。”这是先秦儒家的观点,他们认为,统治者特别是最高统治者,应当是道德高尚的人,其人格和行为应该成为全国人民的表率。曹操也常常这样说:“身不正则令不从,令不从则生变。”的确,对于曹操这种志在天下的人来说,有了这种威信,就有了感召天下的力量源泉。
在讨伐董卓时,曹操和荀彧在许都调遣兵将后,便统领大军出发。这时正值麦收季节,农户们本应去田间收麦,但民因兵至,逃避在外,不敢收麦。曹操得知此消息后,下令使人远近遍谕村中父老及各处守境官吏曰:“吾奉天子明诏,出兵讨逆,与民除害。方今麦熟之时,不得已而起兵,大小将校,凡过麦田,但有践踏者,并皆斩首。军法甚严,尔民勿得惊疑。”当百姓听闻此令后,无不欢喜称颂。
曹操的这一道命令甚得民心,当军队经过麦田的时候,军士皆下马以手扶麦,并且递相传送而过,并不敢践踏。曹操乘马正行,突然田间惊起一鸠,马被惊了,之后窜入麦田中,结果践坏了一大块麦田。
这时,曹操随呼行军主簿,拟议践麦之罪。主簿曰:“丞相岂可议罪?”操曰:“吾自制法,吾自犯之,何以服众?”即掣所佩之剑欲自刎,众急救住。郭嘉曰:“古者《春秋》之义:法不加于尊。丞相总统大军,岂可自戕?”曹操沉吟了良久,乃曰:“既《春秋》有‘法不加于尊’之义,吾姑免死。”随后,曹操以剑割断自己的头发,掷于地曰:“割发权代首。”并使人以发传示三军曰:“丞相践麦,本当斩首号令,今割发以代。”于是三军悚然,无不懔遵军令。
行军作战中,一个将领最需要的是威信,只有这样才可能号令三军。曹操深知其道,勇于对自己发出的命令负责。虽然没有付出性命,但古时候,人们认为身体发肤受之父母,极为珍视,作为一位统帅,能够做到割发代首,实属不易。
其实曹操完全可以宽恕自己,但他没有这样做,仍然惩罚了自己,这样既维护了自己制定的军令,又保住了自己的性命,同时又能引起官兵的警醒。
古语说“上行下效”,曹操认为腐败是由统治者的内部开始的,风气的败坏是从上层渐至下层的,所以榜样的作用十分重要。榜样有两个方面,一是好的,可以催人奋进;一是坏的,可使世风变坏。古今中外,榜样的影响是一样的。
联想前总裁柳传志一直把“其身正,不令而行”这句话放在办公桌上,勉励自己。联想公司在柳传志的带领下,由20万元起家,发展成为今天有上百亿资产的大型集团公司,成为了中国电子工业的龙头企业。这和他处处以身作则,令行禁止有着必然的联系。
联想有一条规则,开二十人以上的会迟到要罚站一分钟。这是一项很严肃的规定,这一分钟是很严肃的一分钟,任何人必须执行。
事情很巧,第一个被罚的人正是柳传志原来的老领导,柳传志和他都感到很尴尬,罚站的时候他本人紧张得不得了,一身是汗,柳传志坐着也一身是汗。柳传志悄声跟老领导说:“您先在这儿站一分钟,今天晚上我到您家里给您站一分钟。”而柳传志本人也被罚过三次,其中有一次是他被困在电梯里,咚咚地敲门希望有个人听到帮他请个假,敲了半天也找不到人,后来出来了没作任何解释还是自觉地被罚了站。
这就是柳传志,要求别人做的,首先自己做到;禁止别人做的,自己坚决不做。正是如此,他真正地发挥出领导的影响力。反过来说作为领导连自己都做不到或不愿做的,要求下属执行自己的规则,那是没有一点点说服力的,纵使执行了也起不到根本性的效果。
现在绝大多数的企业领导者,都非常希望有一支高素质的员工队伍。但反过来,员工们更希望自己的老板能像个老板,是个事业上处处以身作则,靠得住、信得过的带头人。只有这样,员工们才会感到有奔头,死心踏地地跟着你。正如着名管理学家帕瑞克所说的,“除非你能管理‘自我’,否则你不能管理任何人或任何东西”。
总之,领导者一定要懂得“身正则令行”的道理,无论是带兵打仗还是管理企业做一个小领导,都需要这种精神落到实处。
智慧书签
任何一个企业或组织,只有全体成员上下一心,动作整齐合一,才能朝着既定的目标稳步向前。当然所有的一切都要领导一马当先做出了榜样制度才好在企业不折不扣地执行,因为这样才能以身作则,用自己的行动为下属员工起到模范带头作用。
‘叁’ Linux||正则表达式及grep命令
以下内容首发自公众号“小汪Waud”。
本期介绍在Linux环境下的正则表达式及grep命令。
正则表达式(Regular Expression)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些字符的特定组合,组成一个“规则字符串”,这个字符串用来表达对字符串的一种过滤逻辑。
正则表达式基本上是一种表示法,只要程序支持这种表示法,该程序就可以用来作为正则表达式的字符串处理之用。如vi、grep、awk、sed等程序支持正则表达式,所以可以使用正则表达式的特殊字符来进行字符串的处理。但例如cp、ls等命令并不支持正则表达式,所以只能用自己的通配符。
正则表达式依照 不同的严谨度 分为:基础正则表达式和扩展正则表达式。
注意!
grep是一种强大的文本搜索工具,可以使用 正则表达式匹配模式 查找文件里符合条件的字符串,并打印出来。
有点类似于WORD里的查找功能。
grep支持三种正则表达式语法:Basic、Extended和perl兼容。 如果没有提供正则表达式类型,grep将搜索模式解释为基本的正则表达式。要将模式解释为扩展正则表达式,请使用-E。
查看grep的帮助文档,如下
基本用法
grep [OPTION]... PATTERN [FILE]...
高级用法
grep [-A] [-B] [--color=auto] "查找字符" [模式] [文件]
常用参数
首先通过cat命令查看samples.txt的内容,如下图
如果想检索以K为行首的行,通过以下命令即可得到
如果想检索以Z为行尾的行,通过以下命令即可得到
如果想检索三个字符其中前面为K,后面为D中间字符,为任意字符,通过以下命令即可得到
参考资料
https://www.runoob.com/linux/linux-comm-grep.html
https://www.bilibili.com/video/BV1Yy4y117SX?p=12
‘肆’ linuxsed命令怎么通过正则删除多行
要通过Linux的sed命令删除多行,可以采用几种不同的方法。方法之一是使用`d`命令配合行号。例如,若需删除第5至第10行,命令如下:
`sed -i '5,10d' filename`
这里的`5,10`表示行号范围,`d`为删除命令,`filename`为文件名。
另一种方法是利用正则表达式删除匹配模式的多行。命令格式如下:
`sed -n '/pattern/p;N;D' filename`
这里的`/pattern`是正则表达式,`p`表示打印匹配行,`N`表示连接下一行,`D`用于删除连接后的行。举例,若要删除包含"hello"的行及其之后的两行:
`sed -n '/hello/p;N;D' filename`
使用sed命令打开文本文件并应用正则表达式匹配目标行。例如,以下命令会打开文件`test.txt`,并匹配以“start”开始、以“end”结尾的多行:
`sed -n '/start/,/end/p' test.txt`
‘伍’ Linux正则表达式教程:Grep Regex示例
正则表达式是特殊字符,可帮助搜索数据,匹配复杂模式。正则表达式缩写为“regexp”或“regex”。
为了便于理解,让我们逐一学习不同类型的正则表达式。
[TOC]
一些常用的正则表达式命令是tr,sed,vi和grep。下面列出了一些基本的正则表达式。
我们来看一个例子吧。
执行cat示例以查看现有文件的内容
搜索包含字母'a'的内容。
' ^ '匹配字符串的开头。让我们搜索一下STARTS的内容
仅过滤以字符开头的行。将忽略开头不包含字符“a”的行。
让我们看看另一个例子 -
仅选择那些以 $ 结尾的行
这些表达式告诉我们字符串中字符的出现次数。他们是
例:
过滤掉包含字符'p'的所有行
我们想要检查字符'p'是否在字符串中依次出现2次。为此,语法将是:
注意:您需要使用这些正则表达式添加-E。
这些正则表达式包含多个表达式的组合。他们之中有一些是:
例:
搜索所有字符't'
假设我们要过滤字符'a'在字符't'之前的行
我们可以使用命令
大括号扩展的语法是花括号“{}”内的序列或逗号分隔的项目列表。序列中的起始和结束项由两个句点“..”分隔。
一些例子:
在上面的示例中,echo命令使用大括号扩展创建字符串。