面试常用的shell命令汇总

来源:大数据球球





命令行操作

1、输出第十行文本的内容

sed -n '10p' jmeter.log

2、查找电话号码

(xxx) xxx-xxxx 或 xxx-xxx-xxxx。(x 表示一个数字)

grep -E "^\([0-9]{3}) [0-9]{3}-[0-9]{4}$|^[0-9]{3}-[0-9]{3}-[0-9]{4}$" file.txt

3、统计文本字符数量

方法一

grep -E "\b[[:alpha:]]+\b" a.txt -o | sort -r | uniq -c| sort -rn

方法二

cat words.txt | tr -s ' ' '\n'|sort|uniq -c |sort -r|awk '{print $2" "$1}'
cat words.txt | xargs -n1 | sort | uniq -c
cat ——浏览文件
tr -s ——替换字符串(空格换为换行)保证了一行一个单词
sort ——默认ASCII值排序,排序号后还会有重复
uniq —— 去重,-c再输出重复次数。结果就是 ”4 abc“ abc出现了4次
sort 
-r —— 反向排序,也就是从大到小。得到按频率高低的结果;
-n 按照数值比较排序

awk ——格式化输出,规定输出是先字符串再重复次数,所以先$2$1,中间空格分隔

4、文件列转为行

1.获取列数

col=$(wc file.txt | awk '{print $2 / $1}')

2. 按列打印

for i in `seq 1 $col`
do
    awk -v col="$i" '{print $col}' file.txt |xargs
done

操作文件

sed 命令

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。语法

sed [-hnV][-e