Linux三剑客(grep、sed、awk)

原文:https://blog.csdn.net/sj349781478/article/details/82930982    下面所说的是Linux中最重要的三个命令在业界被称为“三剑客”,它们是awk,sed,grep。 我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令。 在说这三个命令前我们要插入一个小插曲就是“正则表达式”。 一、正则表达式 所谓的正则表达式我个人理解就是正规的表示方法。他是用简单的方法来实现强大的功能,所以深受计算机爱好者的使用。 三剑客与正则表达式是什么关系呢? 我们可以这样理解,三剑客就是普通的命令,有的把他们叫做工具,在我看来都一样。而正则表达式就好比一个模版。三剑客能读懂这个模版。就这么简单。注意只有三剑客才能读懂这个模版哦! 现在他们的关系和功能都搞懂了,接下来我们就来认识下他们怎么结合的。正则表达式是一个模版,这个模版是由一些普通字符和一些元字符组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。具体如下 元字符 功能 意思 ^ 匹配行首 表示以某个字符开头 $ 匹配行尾 表示以某个字符结尾 ^$ 空行的意思 表示空行的意思 . 匹配任意单个字符 表示任意一个字符 * 字符*   匹配0或多个此字符 表示重复的任意多个字符 \ 屏蔽一个元字符的特殊含义 表示去掉有意义的元字符的含义 [] 匹配中括号内的字符 表示过滤括号内的字符 .* 代表任意多个字符 就是代表任意多个字符 lele\{n\} 用来匹配前面lele出现次数。n为次数 就是统计前面lele出现的次数 lele\{n,\} 含义同上,但次数最少为n 从功能就可以看出 lele\{n,m\} 义同上,但lele出现次数在n与m之间 从功能也可以看出 lele\{n,m\} 义同上,但lele出现次数在n与m之间 从功能也可以看出 三剑客的功能非常强大,但我们只需要掌握他们分别擅长的领域即可:grep擅长查找功能,sed擅长取行和替换。awk擅长取列。 …

更改Docker容器中的Mysql数据库密码

更改数据库密码,需要数据库的初始密码。容器首次启动,会自动创建密码,使用下面的命令能够查看到初始密码: docker logs Mysql数据库容器名 在日志中有密码。使用改密码登录到数据库,更改数据库密码: mysql> update user set authentication_string=password(‘new_password’) where user=’root’; 或者 mysql> SET PASSWORD FOR ‘root’ = PASSWORD(‘new_password’); Mysql 5.7及之前的版本使用: mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘newpassword’;   上面的命令修改完密码,仍然只允许“root”从“localhost”连接,若改变密码并允许“root”从任意主机登录,用下面的命令: ALTER USER ‘root’@’%’ IDENTIFIED BY ‘newpassword’;  

Docker中安装的Mysql连接报错

使用Docker创建Mysql容器,连接到数据库报错 Host ‘x.x.x.x’ is not allowed to connect to this MySQL server 先登录到数据库 docker exec -it Mysql容器名 bash 在容器中连接到数据库 mysql -u 用户名 -p 输入密码,登上数据库,查看用户名和主机的对应表 SELECT host, user FROM mysql.user; 会显示如下的表 +————+——————+ | host | user | +————+——————+ | % | root | | 127.0.0.1 | root | | ::1 | …

文本处理

#每两行合并为一行,并且以制表符分隔 #!/bin/bash sed -n ‘{N;s/\n/\t/p}’ column.txt > type1.text   #切割文件 #!/bin/bash for i in {1..50} do m=$(($i*3-2)) n=$(($i*3)) cut -b$m-$n text.text > $i.txt i=$(($i+1)) done   #有两个文件,其中文件b是文件a部分行的集合,先将fileb分解为小文件,每个文件一行,再从文件a中取出包含文件b的部分。将文件b拆开为每行一个文件,再进行下面的操作 #!/bin/bash for b in {1..n} do cat “file_a” | grep `cat file$b` >>new_file b=$(($b+1)) done   #将text文件分解为小文件,每一行为一个文件 #!/bin/bash x=1 while read Line do …

python 3

https://www.runoob.com/python3/python3-tutorial.htm 语言特点 Python语言的关键字比较少,它没有分号、begin、end等标记,代码块使用空格或制表符缩进的方式来分隔。Python与JavaScript、PHP、Perl等语言类似,它不需要另外声明变量、直接赋值即可创建一个新的变量。Python的变量创建后会对应一种类型,它可根据赋值表达式的内容决定变量的类型。Python在内部建立了管理这些变量的机制,不同类型的变量需要类型转换。Python语言应用于数据库、网络、图形图像、数学计算、Web开发、操作系统扩展等领域。有许多第三方库支持Python。Python 3发布于2008年底,是一次重大的升级。Python 3的有些改进不向后与Python 2兼容,因此Python 2始终与Python 3并行地向前发展。全面了解Python 3和Python 2之间的差异,可参阅What’s New in Python 3.0(http://docs.python.org/3/whatsnew/3.0.html)。工具2to3(http://docs.python.org/3/library/2to3.html)几乎能将任何Python 2程序自动转换为等价的Python 3程序。 注释:单行: #开头。多行:每行使用#。文档注释:使用三个引号包括起来(”””文档注释”””)。注释必须跟在定义体下面,不能在任意位置。 Python的缺点:运行速度慢(运行速度的瓶颈往往不在于Python代码,而是数据库的操作和网络调用);Python源码不能加密。 命名规则 保留词不可以用作变量名 and elif global or with as else if pass yield assert except import print break exec in raise class FALSE is return continue finally lambda try def for not …

mysql manual

MYSQL(1) MariaDB Database System MYSQL(1) NAME mysql – the MariaDB command-line tool SYNOPSIS mysql [options] db_name DESCRIPTION mysql is a simple SQL shell (with GNU readline capabilities). It supports interactive and non-interactive use. When used interactively, query results are presented in an ASCII-table format. When used non-interactively (for example, as …

使用Python写一个具有GUI的计算器

https://medium.com/@adeyinkaadegbenro/project-build-a-python-gui-calculator-fc92bddb744d 这个计算器能够进行加减乘除运算,能显示小数,还具有退格键,能够删除输入的内容。 from tkinter import * class Calculator: def __init__(self, master): self.master = master master.title(“Python Calculator”) # create screen widget self.screen = Text(master, state=’disabled’, width=30, height=3,background=”yellow”, foreground=”blue”) # position screen in window self.screen.grid(row=0,column=0,columnspan=4,padx=5,pady=5) self.screen.configure(state=’normal’) # initialize screen value as empty self.equation = ” # create buttons using method createButton b1 …

找不到库文件

/usr/bin/ld: cannot find -llapack /usr/bin/ld: cannot find -lblas sudo apt-get install libblas-dev liblapack-dev ERROR: configuration failed for package ¡®XML¡¯ * removing ¡®/home/user/R/x86_64-pc-linux-gnu-library/3.5/XML¡¯ sudo apt-get install libxml2-dev Error, nc-config not found or not executable. This is a script that comes with the netcdf library, version 4.1-beta2 or later, and must be …

常见问题

https://community.rstudio.com/t/biobase-not-available-for-r-version-3-5-1/17761 ΔBiobase not available for R version 3.5.1 should first install the BiocManager package install.packages(“BiocManager”) BiocManager::install(“phyloseq”, version = “3.8”) Δchecking whether pkg-config knows about cairo… no Cannot find cairo.h! you need the cario dev files apt-get install libcairo2-dev I also needed to install the following apt-get install libxt-dev Δ设置 Bioconductor …

Rstudio修改默认library安装位置

查找下在 /usr/lib/R/etc/ 下的 Renviron 文件中。找到这一行 R_LIBS_SITE=${R_LIBS_SITE-‘/home/user/Archive/software/R/x86_64-pc-linux-gnu-library/3.0/:/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library’} 当然上面包含XXX的路径修改成你希望的存储目录即可。 修改之后的再次在R中运行 libPaths() 命令的结果是: > .libPaths() [1] “/home/user/Archive/software/R/x86_64-pc-linux-gnu-library/3.0” [2] “/usr/local/lib/R/site-library” [3] “/usr/lib/R/site-library” [4] “/usr/lib/R/library”