Linux 系统
如何使用grep来输出每行第三个到最后一个字符
linux grep命令( 文件搜索命令)
主要参数:
-c:只输出匹配行的计数。
-i:不区分大小写。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
--color=auto :可以将找到的关键词部分加上颜色的显示。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达 式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的单个字符。
*:所有字符,长度可以为0。
grep mysql /root/install.log
#在/root/install.log日志文件中,查找字符串mysql,输出匹配的行
grep -i multiuser /etc/inittab
#在/etc/inittab文件中,查找字符串multiuser(不区分大小写),输出匹配的行
grep -v ^# /etc/inittab
#在/etc/inittab文件中,查找不是以#开头的所有行
如果你的目的是输出每行第三个到最后一个字符需要配合其他命令一起使用
man一下就知道了
你这一行有多长,如果不是很长,简单的可以使用cut,命令如下:
cat user.txt | cut -b 3-100
grep是过滤命令,不能切割字符串,可以使用cut或者awk
grep有点困难,但是sed可以
cat user.txt | sed -E "s/(^.{3})(.*)$/\2/"
grep只是在内容中查找,没有截断提取这样的功能,需要用cut、sed或者awk才行。