Linux基础之重定向|grep

重定向

>    :覆盖输出
>>    :追加输出

2>    :重定向错误输出
2>>    : 追加方式

&>    : 重定向标准输出或者错误输出至同一个文件


<    :输入重定向



管道:前一个命令的输出结果,当做后一个命令的输入

cut -d: -f1 /etc/passwd | sort | tr 'a-z' 'A-Z'
wc -l /etc/passwd | cut -d' ' -f1

tee
输出到屏幕并且保存到文件中
echo "hello world" | tee /tmp/test.txt


1 统计/usr/bin目录下文件个数
2取出当前系统上所有用户的shell,要求每种shell只显示一次,并且按顺序进行显示
3显示/var/log目录下每个文件的内容类型
4取出/etc/inittab文件的倒数第6行
5取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中
6显示/etc/目录下所有以pa开头的文件,并统计其个数
7不使用文本编辑,将alias cls=clear一行内容添加至当前用户的.bashrc文件中

ls /usr/bin |wc -l
cut -d: -f7 /etc/passwd |sort -u
file /var/log/*
tail -6 /etc/inittab | head -1
tail -9 /etc/passwd | head -1 | cut -d: -f1,7 | tee /tmp/users
ls -d /etc/pa* | wc -l
print "alias cls=clear" >> ~/.bashrc





grep egrep fgrep

grep:根据模式,搜索文本,并将符合模式是文本行显示出来
PATTERN:文本字符和正则表达式的元字符组合而成匹配条件

grep [OPTIONS] PATTERN [FILE...]
    -i
    --color
    -v :显示没有被模式匹配到的行
    -o :只显示被模式匹配到的字符串


    
*:任意长度的任意字符
?:任意单个字符
[]:匹配指定范围内的单个字符
[^]:匹配指定范围外的单个字符
[:digit:] [:lower:] [:upper:] [:punct:] [:space:] [:alpha:] [:alnum:]

    
    
    
    
grep里面正则表达式和上述不同
元字符:
.:任意单个字符
grep 'r..r' /etc/passwd

字符个数:
*:匹配其前面的字符任意次
    cat test.txt    
    ab, aab, acb, adb, amnb

    .*:任意长度的任意字符


\?:匹配其前面字符的1次或0次
\{m,n\}:匹配其前面的字符至少m次,至多n次

grep 'a.\{1,3\}b' test.txt

^:行首
$:行尾
^$:空白行



\<或者\b:其后面的任意字符必须作为单词首部出现
\>或者\b:其前面的任意字符必须作为单词尾部出现


\<abc\> :abc必须作为整个单词出现
        cat test.txt
        this is root
        the user is mroot
        chroot is a command

grep "\<root\>" test.txt


分组:
\(\)
    \(ab\)*
后项引用
    \1:第一个左括号以及与之对应的右括号所包括的所有内容
    \2
    \3
he love his lover.
she like her liker.
he like his lover.
she love her liker.
she like her.

grep '\(l..e\).*\1' test.txt

grep '\([0-9]\).*\1$' /etc/inittab
查找行中出现任意一个数字行尾以相同数字结尾的行



posted @ 2018-04-06 15:39  风中驻足  阅读(1052)  评论(0编辑  收藏  举报