1.linux通配符
*:表示所有字符(0到多个);
?表示文字;
;连续不同命令之间的分隔符;
#:配置文件注释;
|:管路;
~:当前用户的主目录;
-:上次传的球
$:变量前面必须加上的符号;
/:通路分离器;
或者1:重定向涵盖原始数据;
:附加重定向;
:
:
' :单引号,无命令替换功能,输出时可见
' :双引号,具有变量替换功能,分析变量后输出。 不加引号相当于双引号;
` :反引号,两个``中间是指令,先执行,等效于$ () );
{}:命令块的组合或内容序列,echo stu{1.5}; cp a.txt {, bak};
!逻辑运算中的非(not );
:and且前一个命令执行成功的情况下,执行后一个命令;
||:or或上一个命令执行失败时,执行下一个命令;
.当前目录
.上级目录;
2 .正则表达式:为处理大量字符串定义的一组规则和方法
a .基础正则第一波:
匹配以#m开头的文字是贪婪模式,所以匹配整行
grep '^m' oldboy.txt
与以#m结束字符一致
grep ' m $ '
#与空行匹配,显示行号
grep -n '^$' oldboy.txt
#排除空行
grep -vn '^$' oldboy.txt
#仅输出一致的m个字符
grep -no 'm' oldboy.txt
.只能表示任意一个字符;
*重复*:前的一个或多个字符。 例如,my*,0个y与m个字符的字符串匹配; 一个y,my; 多个y、myyy;
:转义,使具有特殊意义的字符只表示字符本身;
. *:匹配任意长度的任意字符。
b .基础正则第二波:
grep -no [abc] oldboy.txt与集合中的任何字符匹配
grep -no [^abc] oldboy.txt与集合中的字符不匹配
a{n,m}前一个字符,重复n次至m次
a{n,}至少重复n次
重复a{n}次
a{,m}最多重复m次
# -w参数按单词进行搜索,仅与该单词所在的行匹配
grep -w 'oldboy' oldboy.txt
# grep -E不需要添加转义字符。 egrep、sed -r也是同样的理由。 支持扩展正则
# -i和-v是常规参数,-o (用于计数语句中出现的次数)。
c .通配符与正则表达式的比较:
通配符经常用于文件中。 例如,正则表达式(诸如find、ls和cp )经常用于文本过滤,例如grep、awk和sed
*表示通配符与任意0个以上字符一致; 正则表达式中重复前的一个或多个字符,不能独立使用。
3.python去重的几种方法:
lst1=[ 2,1,3,4,1 ]
LST2=list(set ) lst1) )
是打印(lst2)
[ 1,2,3,4 ]
二.常规方法
lst1=[ 2,1,3,4,1 ]
temp=[]
for item in lst1:
if not item in temp:
temp.append(item ) )。
是打印(temp )
[ 2,1,3,4 ]
三、名单推导
lst1=[ 2,1,3,4,1 ]
temp=[]
[temp.append(I ) for i in lst1 if not i in temp]
[None,None,None,None]
是打印(temp )
[ 2,1,3,4 ]
data=[ 2,1,3,4,1 ]
[ itemforitemindataifdata.count (item )==1]
[ 2,3,4 ]
四. sort、sorted
lst1=[ 2,1,3,4,1 ]
LST2.sort(key=lst1.index ) )。
LST2=sorted(set(lst1),key=lst1.index ) ) ) ) ) ) ) )。
我个人认为第一种和第三种方法很容易理解
sort和sorted的区别:
sort是应用于list的方法,sorted可以对所有可重复对象执行排序操作。 list的sort方法对已经存在的列表执行操作,没有返回值。 另一方面,内置函数sorted方法返回新的列表,而不是原始的基础。
:通过指定列表中的元素进行排序
random=[ (2,2 ),3,4 ),4,1 ),1,3 ] ]
() ) ) )。
是打印(随机)
[ (4,1 ),2,2 ),1,3 ),3,4 ] ]
sorted的使用方法:
students=[('john ',' a ',15],[ '可爱的刺猬',' b ',12],dave ',' b ',10]]
按年龄降序排序
(sorted(students,key=lambda s: s[2],reverse=True ) ) ) ) ) ) ) ) )。
[(John )、(a )、(15 )、)、可爱的刺猬)、(b )、(12 )、()、dave )、(b )、(10 ) ]