linux find xargs ls,linux find  ls  xargs grep fmt tail uniq expr cut

在标准输出上输出版本信息并退出。

xargs

这是给命令传递参数的一个过滤器, 也是组合多个命令的一个工具.它把一个数据流分割为

一些足够小的块, 以方便过滤器和命令进行处理. 由此这个命令也是后置引用的一个强有

力的替换. 在一般使用过多参数的命令替换失败的时候,用xargs 来替换它一般都能成功.

[1] 通常情况下, xargs 从管道或者stdin 中读取数据, 但是它也能够从文件的输出中读取

数据.

xargs 的默认命令是 echo. 这意味着通过管道传递给xargs 的输入将会包含换行和空白, 不

过通过 xargs 的处理, 换行和空白将被空格取代.

-0 :如果输入的 stdin 含有特殊字符,例如 `,

\, 空格键等等字符时,这个 -0 参数

可以将他还原成一般字符。这个参数可以用于特殊状态喔!

反转义

-e :这个是 EOF (end of file) 的意思。后面可以接一个字符串,当 xargs分析到

这个字符串时,就会停止继续工作!-p :在运行每个命令的 argument 时,都会询问使用者的意思;

-n :后面接次数,每次 command 命令运行时,要使用几个参数的意思。看范例三。

-i 表示 find 传递给xargs的结果 由{}来代替

-I 我认为是和i差不多,可以这么认为 -i可以用-I {} 来代替

-p 交互式提问y来确认命令的每次执行。

-t 在执行前回显各个command

注意: 一个有趣的 xargs 选项是 -n NN, NN 是限制每次传递进来参数的个数.

ls | xargs -n 8 echo 以每行8 列的形式列出当前目录下的所有文件.

[root@localhost dir]# ls . | grep ".*.txt" |xargs -i -t cp ./{} dir

1.grep -c option file:显示文件中包含搜索内容行数,比如前面的命令表示显示

file中包含option内容的行数是几

2. grep -n option flie:列出所有的匹配行,并在最前面添加行的序列数

3. grep -v option file:显示文件中不包含所搜索内容的行数,这个和-c的参数正好相反

4. gep -i option file:列出所搜索内容的匹配行,搜索过程中不区分大小写

5. grep -l option *:列出所有包含option内容的文件的名

6. grep -r option :对当前目录和所有的子目录进行搜索

7. grep -w option file:精确搜索,可以说准确性搜索,比如:grep -w b*

a.txt:此命令执行时,*不会默认为任何字符,只表示字面意思,就是一个*字符.

8. grep -x option file:完全匹配输出,比如:grep -x hello

a.txt,只会输出某一行存在hello字符串,并且此行仅包含hello的内容。假设a.txt中有一行“hello

all”,执行上述命令,此行不会被搜索到。

find / -type f -print0 | xargs -0 grep -liwZ GUI | xargs -0 rm -f grep -rliwZ GUI / | xargs -0 rm -f

简单的格式化文本

fmt [option]

[file-list]

fmt通过将所有非空白行的长度设置为几乎相同,来进行简单的文本格式化

参数

fmt从file-list中读取文件,并将其内容的格式化版本发送到标准输出。如果不制定文件名或者用连字符(-)来替代文件名,则fmt将从标准输入读取文本信息

选项

-s 截断长行,但不合并

-t 除每个段落的第1行外都缩进

-u 改变格式化,使字之间出现一个空格,句子之间出现两个空格

-w

n 将输出的行宽改为n个字符。不带该选项时,fmt输出的行宽度为75个字符

linux

tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。

一、tail命令语法

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k

Number ] [ File ]

参数解释:

-f 该参数用于监视File文件增长。

-c Number 从 Number 字节位置读取指定文件

-n Number 从 Number 行位置读取指定文件。

-m Number 从 Number

多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。

-b Number 从 Number 表示的512字节块位置读取指定文件。

-k Number 从 Number 表示的1KB块位置读取指定文件。

File 指定操作的目标文件名称

上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。

tail可运行文件一般在/usr/bin/以下。

tail -$LINES /var/log/messages | tr -d "\"'" | xargs | fmt -s

>>logfile

15 ls . | xargs

-i -t cp ./{} $1

16 # ^^ ^^ ^^

17 # -t 是 "verbose" (输出命令行到stderr) 选项.

18 # -i 是"替换字符串"选项.

19 # {} 是输出文本的替换点.

20 # 这与在"find"命令中使用{}的情况很相像

ps ax | grep "$PROCESS_NAME" | awk '{print $1}' | xargs -i kill {} 2&>/dev/null

---------------------------------------------------------

29 # 注意:

30 # -i 参数是xargs 命令的"替换字符串"选项.

31 # 大括号对的地方就是替换点.

32 # 2&>/dev/null 将会丢弃不需要的错误消息.

一行一行列出来 然后 wc.. 判断多少个 单词 然后

uniq -c算出不一样的 个数

29 cat "$1" | xargs -n1 | \

30 # 列出文件, 每行一个单词.

31 tr A-Z a-z | \

32 # 将字符转换为小写.

33 sed -e 's/\.//g' -e 's/\,//g' -e 's/ /\

34 /g' | \

35 # 过滤掉句号和逗号,

36 #+ 并且将单词间的空格修改为换行,

37 sort | uniq -c | sort -nr

38 # 最后统计出现次数,把数字显示在第一列,然后显示单词,并按数字排序.

39

uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

语法:uniq [-cdu][-f][-s][-w][--help][--version][输入文件][输出文件]

补充说明:uniq可检查文本文件中重复出现的行列。

参数:

-c或--count 在每列旁边显示该行重复出现的次数。

-d或--repeated 仅显示重复出现的行列。

-f或--skip-fields= 忽略比较指定的栏位。

-s或--skip-chars= 忽略比较指定的字符。

-u或--unique 仅显示出一次的行列。

-w或--check-chars= 指定要比较的字符。

--help 显示帮助。

--version 显示版本信息。

[输入文件] 指定已排序好的文本文件。

[输出文件] 指定输出的文件。

uniq命令的作用:显示唯一的行,对于那些连续重复的行只显示一次!

以下是一些常见的例子。

当你有一个包含相同条目的雇员(employee)的文件,你可以以如下方式来删除相同的条目

$ sort namesd.txt |

uniq

[root@localhost sh]# cat a2.txt | xargs -n1|sed -e 's/\.//g' -e

's/\,//g' -e 's/ ^\///g' | tr a-z A-Z |sort|uniq -c |sort

-nr

#!/bin/bash

name=(`grep 'failed' /var/log/secure | sed 's/.*from \(.*\)

port.*/\1/g'|sort|uniq -c |tr -s ' ' ':'`)

echo $name

for i in ${name[*]}

do

count=`echo $i |awk -F':' '{print $2}'`

echo $count

if [ "$count" -gt 3 ]

then

echo "sshd:$ip" >> aa.xx

fi

done

expr还有截取的功能

z=`expr substr $string $position $length`

在位置$position 上提取$length 长度的子串.

注意: ":" 操作可以替换 match. 比如, b=`expr $a : [0-9]*`与上边所使用的 b=`expr

match $a [0-9]*` 完全等价.

LRFDATE=`expr "$LRFDATE" : '[[:space:]]*\(.*\)[[:space:]]*$'`

cut

一个从文件中提取特定域的工具. 这个命令与 awk 中使用的 print $N 命令很相似, 但是

更受限. 在脚本中使用cut 命令会比使用 awk 命令来得容易一些. 最重要的选项就是 -d

(字段定界符) 和 -f (域分隔符) 选项.

使用 cut 来获得所有mount 上的文件系统的列表:

1 cut -d ' ' -f1,2 /etc/mtab

使用 cut 命令列出 OS 和 kernel 的版本:

1 uname -a | cut -d" " -f1,3,11,12

使用 cut 命令从 e-mail 中提取消息头:

bash$ grep '^Subject:' read-messages | cut -c10-80

Re: Linux suitable for mission-critical apps?

MAKE MILLIONS WORKING AT HOME!!!

Spam complaint

Re: Spam complaint

使用 cut 命令来分析一个文件:

1 # 列出所有在/etc/passwd 中的用户.

2

3 FILENAME=/etc/passwd

4

5 for user in $(cut -d: -f1 $FILENAME)

6 do

7 echo $user

8 done

9

10 # Thanks, Oleg Philon for suggesting this.

cut -d ' ' -f2,3 filename 等价于 awk -F'[ ]' '{ print $2, $3 }'

filename

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值