Command Callenge (1)_AICSDNU的博客-CSDN博客cmdchallenge
https://blog.csdn.net/AICSDNU/article/details/131300458#comments_27205638
找出.txt后缀的文件并将文件中对应的字符删除![](https://i-blog.csdnimg.cn/blog_migrate/c8f199ca1cee1b727496bbfff64da61e.png)
find . -name "*.txt" -exec sed -i 's/challenges are difficult//g' {} \;
将文件中每一行的数字加起来并输出总和![](https://i-blog.csdnimg.cn/blog_migrate/e14ca8f19fb01dfdd74ce398977f2011.png)
awk '{total+=$0;}END{print total;}' sum-me.txt
需要递归打印当前目录下的所有文件,不能有路径![](https://i-blog.csdnimg.cn/blog_migrate/54eb78c346a3759fc816c11fb84d099f.png)
find . -type f -printf "%f\n"
要在当前目录及其子目录中递归地重命名所有文件并删除扩展名
find . -type f -exec sh -c 'mv "$1" "${1%.*}"' _ {} \;
列出当前目录中的文件,并将输出的结果中的空格替换为'.'![](https://i-blog.csdnimg.cn/blog_migrate/6b94572922db71d71afd56a78dfad604.png)
ls | sed 's/ /./g'
列出所有以".tf"后缀结尾的文件的目录,结果需要去重![](https://i-blog.csdnimg.cn/blog_migrate/488fd923c5141fba1fd09d87b04d4960.png)
find . -type f -name "*.tf" -exec dirname {} \; | sort -u
打印当前目录中以数字开头的文件名![](https://i-blog.csdnimg.cn/blog_migrate/c8f8c04e75240bfb19bfd29818dffbf7.png)
find . -type f -name '[0-9]*' -printf "%f\n"
打印第25行的信息![](https://i-blog.csdnimg.cn/blog_migrate/b2e1f63c5b5fb0bc04c1db195d6f3090.png)
sed -n 25p faces.txt
倒叙打印文件内容![](https://i-blog.csdnimg.cn/blog_migrate/2d05da19946176b5201ab4564749d04d.png)
Tac reverse-me.txt
不做排序直接将首次出现的行进行打印![](https://i-blog.csdnimg.cn/blog_migrate/106026d4db813773de39e28d99890afb.png)
awk '!arr[$0]++' faces.txt
计算文件中不重复的质数的个数![](https://i-blog.csdnimg.cn/blog_migrate/668093895da5083263c0c26beabf49aa.png)
awk 'function is_prime(n) { if (n < 2) return 0; for (i = 2; i * i <= n; i++) if (n % i == 0) return 0; return 1; } is_prime($1) { primes[$1]++ } END { for (prime in primes) count++; print count }' random-numbers.txt
打印两个文件中共有的IP地址,每行显示一个![](https://i-blog.csdnimg.cn/blog_migrate/fbee73734b952f3280d8acd1f5b3c3f1.png)
awk '{print $1}'access.log.1 access.log.2 | sort | uniq -d
查找以access.log开头的文件,并输出其中下一行包含字符‘404’的行内容![](https://i-blog.csdnimg.cn/blog_migrate/0f15e89bfad5e5af70893ab661b529c5.png)
find . -type f -name "access.log*" -exec awk '/404/ {print prev_line} {prev_line=$0}' {} \;
打印当前目录中所有扩展名为.bin的文件,这些文件的内容与名为base.bin的文件不同![](https://i-blog.csdnimg.cn/blog_migrate/50c885f238e74b714dbef1d9bd80763d.png)
diff *.bin --to-file base.bin | cut -d ' ' -f 3
获取到以 ./.../ /. .the flag.txt 作为文件名的文件的内容输出到屏幕![](https://i-blog.csdnimg.cn/blog_migrate/0d82a1baf2419eaf23cb676d1cbc8386.png)
cat ./.../*/'. .the flag.txt'
输出文件中含有tab的行数![](https://i-blog.csdnimg.cn/blog_migrate/bd6791b63acd11b4c868a92d5b8561b4.png)
grep -P '\t' file-with-tabs.txt
在当前目录下递归删除非.txt和.exe后缀的文件![](https://i-blog.csdnimg.cn/blog_migrate/c87bdbc951d9341391db8dbf1f44f69b.png)
find . -type f ! -name "*.txt" ! -name "*.exe" -delete
删除以破折号开头的文件
rm ./-*
打印两个文件中的内容对PID列进行排序,然后去重
cat ps* | sort -k2 -n | uniq
或者
Sort -k2 -n ps-ef1 ps-ef2
取出文件中所有基于IPv4监听的端口号并以从大到小进行排序![](https://i-blog.csdnimg.cn/blog_migrate/2bc1d61b7213f233fb918ccdf67f8495.png)
grep "tcp " netstat.out | grep LISTEN | awk '{print $4}' | cut -d ':' -f 2 | sort -nr