sed 's/remote_addr.*rtime=\([.*]\+\) request=\([.*]\+\) .*$/\1\2/' access.log
发现这么写不好使
* + ? 都具有逻辑意义,如果是要匹配它们字符本身,则都需要加上 \
可以使用sudo 命令提升用户权限😀
~表示当前用户目录,具体的,在你的home下的liudan里面,而不是你ll的home目录,向下cd liudan即可看到passwd文件
sed -n ‘/Error/p’ | awk ‘{print $1}’ fresh.log 分开执行试试,先sed -n ‘/Error/p’再加上 awk ‘{print $1}’ fresh.log 执行。其实sed -n ‘/Error/p’这里就卡住了。
管道符
分隔符完了之后 单引号后少个空格
正则中的小数点是元字符,代表任意单个字符。
转义后,也就是 [.] 和 \ . 代表 单个字符表示一种符号也即是通常说的小数点。
没区别
因为那个文件里,没有单个字母匹配这个正则表达式,所以没有输出
word
同学的学习线路不对啊,passwd文件是系统自带的
忘了\b
把具体的实例发出来啊 你这样说没法看出来你哪有问题啊
格式化输出,占位的作用,不同的数据类型用不同的字母来表示,比如%d,代表整型,%s就代表字符串类型。按照顺序依次对应后面的变量。在很多语言中都有这个prinf语法,java,php,c
brew install gsed
ifconfig eth0 | sed -n '/inet /p'| sed 's/ine .*r:\([0-9.]\+\).*$/\1/'
少了一个空格,改成:
ifconfig eth0 | sed -n '/inet /p'| sed 's/ine .*r:\([0-9.]\+\) .*$/\1/'
~符号在正则中没有特殊意义例子中的~符号是awk自己的逻辑判断
可能是编辑器格式的问题。
使用echo -e 'password,linunx1234567890' >password
然后再测试就可以找到了
转义符使用时,+,?,(),{}时要表达正确的含义时,需加转义符。‘+’表示‘+’;'\+'表示一次或多次;
1、cp /etc/passwd ~/. 和 cp /etc/passwd /home/mooc/ ~代表当前登录用户家目录,老师之所以不直接操作/etc/passwd
是因为/etc/passwd 是重要账号配置文件,防止误操作,误操作会发生可怕后果,尤其是生产环境
2、cd 和 cd /home/mooc 一样,cd 命令后面不跟参数,默认回到当前用户家目录,也就是/home/mooc
3、ls passwd 列出passwd文件
4、兄弟,你基础好差啊,这些都是最最基本命令,建议去学习一下Linux基础,循序渐进
mooc网的材料都没有办法下载,都是精心的材料,认真做笔记就OK
老师命令自动标红是因为老师用的是别名命令,你可以这么写 grep --color '9' txt,或者也可以临时设置一下别名
alias grep='grep --color'
刚百度了一下 代表$1去匹配后面~之后的通配符数据,这个用法比较特殊,建议课程讲解的时候单独讲解下,和之前sed的~搞混了
sed -n 's/\(^[a-z]\+\):.*$/\1/' passwd
就是这一段
你说的"." 吗,代表一个任意字符吧
start with *, the word length from1 to 4