gpt4 book ai didi

bash - 历史中使用的计数和排序命令

转载 作者:太空宇宙 更新时间:2023-11-04 03:40:18 25 4
gpt4 key购买 nike

我有一个包含一堆命令的文本文件,例如:

ls -l
/bin/bash/
cat file.txt
bash
cat somethingElse

我要做的是,获取命令的名称(lscatbash)并对其进行计数。我已经这样做了:

cut -d' ' -f1 file.txt | tr ' ' '\n' | sort | uniq -c

这几乎按照我想要的方式工作——输出是:

1 bash
1 /bin/bash
2 cat
1 ls

这里唯一的问题是,它必须忽略绝对路径,因此输出必须如下所示

2 bash
2 cat
1 cat

我尝试使用一个带有 if 语句的 while 循环来检查一行中是否有“/”,但它似乎不起作用。

最佳答案

使用awk,您可以说print $1来打印第一个单词。然而,您只想要这个名字。为此,您可以使用basename:

$ basename "/bin/bash"
bash

然后就是从 awk 调用 basename 的问题。总而言之:

$ awk '{system("basename "$1)}' a
ls
bash
cat
bash
cat

然后您可以通过管道传输到sortuniq:

$ awk '{system("basename "$1)}' a | sort | uniq -c
2 bash
2 cat
1 ls

关于bash - 历史中使用的计数和排序命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29914695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com