shell

作者: shuff1e | 来源:发表于2020-10-21 22:06 被阅读0次

lc192

# cat words.txt
the day is sunny the the
the sunny is is

统计一个文本文件words.txt中每个单词出现的频率

# cat words.txt | tr ' ' '\n' | grep -v '^$' | awk '{ ++S[$1] } END { for ( a in S) print a,S[a]}' | sort -r -n -k2
the 4
is 3
sunny 2
day 1
# awk '{ for (i=1;i<=NF;i++) ++S[$i]} END { for (a in S) print a,S[a]}' words.txt | sort -r -n -k2
the 4
is 3
sunny 2
day 1
# cat words.txt | xargs -n1 | sort | uniq -c | awk '{print $2,$1}' | sort -r -n -k2
the 4
is 3
sunny 2
day 1

lc 195
打印文件的第10行
file.txt

# cat a.bash
rowCount=$(awk 'END {print NR}' file.txt)

if [ $rowCount -lt 10 ];then
    echo "less than 10 lines"
else
    awk '{ if (NR==10) print $0}' file.txt
fi

lc 194
给定一个文件,转置它的内容

# cat file.txt
name age
alice 21
ryan 30
# cat file.txt | awk '{ for (i=1;i<=NF;i++) { if (NR==1) { row[i]=$i} else {row[i]=row[i]" "$i}}} END { for (a in row) {print row[a]}}'
name alice ryan
age 21 30
# cat file.txt
name age
alice 21
ryan 30
# cat a.bash
colCount=$(awk 'END {print NF}' file.txt)

for ((i=1;i<=$colCount;i++));do
    cat file.txt | cut -d ' ' -f $i | xargs
done

假设 file.txt 内容如下:

987-123-4567
123 456 7890
(123) 456-7890
你的脚本应当输出下列有效的电话号码:

987-123-4567
(123) 456-7890

# cat file.txt
987-123-4567
123 456 7890
(123) 456-7890
# cat file.txt | grep -E '([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}'
987-123-4567
(123) 456-7890

查看timewait阶段的socket的数量

netstat -antup | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]}'

6.查看 打开文件句柄数最多的进程

lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr -k1 | head -n1

abcdefghijklmn
一个文本有很多这样的字符串,每一行都删除c和j之间的字符

# echo abcdefghijklmn | sed 's/\([^cj]*\)c[^cj]*j\([^cj]\)/\1\2/g'
abklmn

find . -type f -exec ls {} ;

查看打开文件句柄数最多的进程的PID

lsof | awk 'NR>1 {++S[$2]} END { for(a in S) {print a,"\t",S[a]}}'|sort -n -k 1

1        21
2        3
3        3
4        3
5        3
6        3
7        3
8        3
9        3
10       3
11       3
12       3
13       3

lsof | awk 'NR>1 {++S[$2]} END { for(a in S) {print a,"\t",S[a]}}'|sort -n -k 2|tail -n 1

2157     85

查看各个状态的TCP Socket的个数

netstat -ant | awk 'NR>2 {++S[$NF]} END {for(a in S) {printf "%-12s %-5s\n",a,S[a]}}'

TIME_WAIT    24   
ESTABLISHED  25   
LISTEN       16  

10.linux中想对一个文件中内容相同的行去重(即多行内容一致就只保留一行)应该输入什么命令执行。

# cat hello.txt
hello world
awk
coding ants
hello world
awk
hello world
awk
coding ants
coding ants
# awk '!a[$0]++' hello.txt
hello world
awk
coding ants

相关文章

  • Shell 学习

    shell 变量 shell 参数传递 shell 数组 shell 运算符 shell echo 命令 prin...

  • Shell 概述

    学习 Shell 主要包括的内容: Shell 脚本入门 Shell 变量 Shell 内置命令 Shell 运算...

  • Shell 教程

    Shell 变量 Shell 传递参数 Shell 数组 Shell 基本运算符 Shell echo 命令 Sh...

  • shell 第一天

    shell编程初识 1.1 shell编程初识 shell的定义 Shell 是命令解释器 Shell 也是...

  • shell 案例

    Shell编程一 Shell防范ARP攻击 Shell编程二 Shell防范DDos攻击 Shell编程三 ...

  • 【生物信息笔记】shell 脚本 (dry-2)

    shell 和 shell script(脚本)区别: shell 和 shell 脚本是两个不同概念,shell...

  • Linux Shell:基础知识和Shell变量

    摘要:Linux,Shell 整理Shell内容要点: Shell基础知识 Shell变量的类型 Shell变量赋...

  • Shell脚本语言一

    一、语法 格式 运行 Shell变量 Shell字符串 Shell数组 Shell注释 Shell传递参数 She...

  • 使用shell脚本

    使用方式 shell 变量 shell 字符串操作 shell 数组 shell 注释 shell 命令行参数 s...

  • vim学习 09——shell命令

    vim学习 09——shell命令 执行 shell 命令 :!shell命令 : 可以执行 shell 命令。 ...

网友评论

      本文标题:shell

      本文链接:https://www.haomeiwen.com/subject/xmgcektx.html