Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何查找文件中最常用的字符串_Bash - Fatal编程技术网

Bash 如何查找文件中最常用的字符串

Bash 如何查找文件中最常用的字符串,bash,Bash,我有一个关于bash脚本的问题,假设有一个包含行的文件,每行都有一个文件的路径和一个日期,问题是如何找到最频繁的路径 提前感谢。将行反转,剪下行号(日期),再次反转,然后对唯一行进行排序和计数: cat file.txt | rev | cut-b22 | rev | sort | uniq-c 如果您完全确定路径中不会出现空白,则可以完全避免rev: cat file.txt | cut-d”“-f1 | sort | uniq-c 如果输出太长,无法进行目视检查,aioobe建议使用sort

我有一个关于bash脚本的问题,假设有一个包含行的文件,每行都有一个文件的路径和一个日期,问题是如何找到最频繁的路径


提前感谢。

将行反转,剪下行号(日期),再次反转,然后对唯一行进行排序和计数:

cat file.txt | rev | cut-b22 | rev | sort | uniq-c

如果您完全确定路径中不会出现空白,则可以完全避免
rev

cat file.txt | cut-d”“-f1 | sort | uniq-c

如果输出太长,无法进行目视检查,aioobe建议使用
sort-rn | head-n1
来执行此操作,这将很好地为您服务


值得注意的是,正如aioobe所提到的,许多unix命令都可以选择使用文件参数。通过使用它,可以避免在开始时使用额外的
cat
命令,方法是将其参数提供给下一个命令:

cat file.txt | rev |…
vs
rev file.txt |…


虽然我个人认为第一个选项更容易记忆和理解,但许多(大多数?)人更喜欢第二个选项,因为它节省了系统资源(特别是额外进程使用的内存和引用),并且在某些特定用例中具有更好的性能。详细讨论此问题。

将行反转,剪切行号(日期),再次反转,然后对唯一行进行排序和计数:

cat file.txt | rev | cut-b22 | rev | sort | uniq-c

如果您完全确定路径中不会出现空白,则可以完全避免
rev

cat file.txt | cut-d”“-f1 | sort | uniq-c

如果输出太长,无法进行目视检查,aioobe建议使用
sort-rn | head-n1
来执行此操作,这将很好地为您服务


值得注意的是,正如aioobe所提到的,许多unix命令都可以选择使用文件参数。通过使用它,可以避免在开始时使用额外的
cat
命令,方法是将其参数提供给下一个命令:

cat file.txt | rev |…
vs
rev file.txt |…


虽然我个人认为第一个选项更容易记忆和理解,但许多(大多数?)人更喜欢第二个选项,因为它节省了系统资源(特别是额外进程使用的内存和引用),并且在某些特定用例中具有更好的性能。详细讨论此问题。

将行反转,剪切行号(日期),再次反转,然后对唯一行进行排序和计数:

cat file.txt | rev | cut-b22 | rev | sort | uniq-c

如果您完全确定路径中不会出现空白,则可以完全避免
rev

cat file.txt | cut-d”“-f1 | sort | uniq-c

如果输出太长,无法进行目视检查,aioobe建议使用
sort-rn | head-n1
来执行此操作,这将很好地为您服务


值得注意的是,正如aioobe所提到的,许多unix命令都可以选择使用文件参数。通过使用它,可以避免在开始时使用额外的
cat
命令,方法是将其参数提供给下一个命令:

cat file.txt | rev |…
vs
rev file.txt |…


虽然我个人认为第一个选项更容易记忆和理解,但许多(大多数?)人更喜欢第二个选项,因为它节省了系统资源(特别是额外进程使用的内存和引用),并且在某些特定用例中具有更好的性能。详细讨论此问题。

将行反转,剪切行号(日期),再次反转,然后对唯一行进行排序和计数:

cat file.txt | rev | cut-b22 | rev | sort | uniq-c

如果您完全确定路径中不会出现空白,则可以完全避免
rev

cat file.txt | cut-d”“-f1 | sort | uniq-c

如果输出太长,无法进行目视检查,aioobe建议使用
sort-rn | head-n1
来执行此操作,这将很好地为您服务


值得注意的是,正如aioobe所提到的,许多unix命令都可以选择使用文件参数。通过使用它,可以避免在开始时使用额外的
cat
命令,方法是将其参数提供给下一个命令:

cat file.txt | rev |…
vs
rev file.txt |…

虽然我个人认为第一个选项更容易记忆和理解,但许多(大多数?)人更喜欢第二个选项,因为它节省了系统资源(特别是额外进程使用的内存和引用),并且在某些特定用例中具有更好的性能。详细讨论这一点。

这里有一个建议

$ cut -d' ' -f1 file.txt | sort | uniq -c | sort -rn | head -n1
# \_____________________/  \__/   \_____/   \______/   \_______/
# select the file column   sort    print     sort on    print top
#                          files   counts    count       result
示例用法:

$ cat file.txt 
/home/admin/fileA jan:17:13:46:27:2015
/home/admin/fileB jan:17:13:46:27:2015
/home/admin/fileC jan:17:13:46:27:2015
/home/admin/fileA jan:17:13:46:27:2015
/home/admin/fileA jan:17:13:46:27:2015
$ cut -d' ' -f1 file.txt | sort | uniq -c | sort -rn | head -n1
       3 /home/admin/fileA
您可以通过另一个
cut

从最终结果中删除
3
,这里有一个建议

$ cut -d' ' -f1 file.txt | sort | uniq -c | sort -rn | head -n1
# \_____________________/  \__/   \_____/   \______/   \_______/
# select the file column   sort    print     sort on    print top
#                          files   counts    count       result
示例用法:

$ cat file.txt 
/home/admin/fileA jan:17:13:46:27:2015
/home/admin/fileB jan:17:13:46:27:2015
/home/admin/fileC jan:17:13:46:27:2015
/home/admin/fileA jan:17:13:46:27:2015
/home/admin/fileA jan:17:13:46:27:2015
$ cut -d' ' -f1 file.txt | sort | uniq -c | sort -rn | head -n1
       3 /home/admin/fileA
您可以通过另一个
cut

从最终结果中删除
3
,这里有一个建议

$ cut -d' ' -f1 file.txt | sort | uniq -c | sort -rn | head -n1
# \_____________________/  \__/   \_____/   \______/   \_______/
# select the file column   sort    print     sort on    print top
#                          files   counts    count       result
示例用法:

$ cat file.txt 
/home/admin/fileA jan:17:13:46:27:2015
/home/admin/fileB jan:17:13:46:27:2015
/home/admin/fileC jan:17:13:46:27:2015
/home/admin/fileA jan:17:13:46:27:2015
/home/admin/fileA jan:17:13:46:27:2015
$ cut -d' ' -f1 file.txt | sort | uniq -c | sort -rn | head -n1
       3 /home/admin/fileA
您可以通过另一个
cut

从最终结果中删除
3
,这里有一个建议

$ cut -d' ' -f1 file.txt | sort | uniq -c | sort -rn | head -n1
# \_____________________/  \__/   \_____/   \______/   \_______/
# select the file column   sort    print     sort on    print top
#                          files   counts    count       result
示例用法:

$ cat file.txt 
/home/admin/fileA jan:17:13:46:27:2015
/home/admin/fileB jan:17:13:46:27:2015
/home/admin/fileC jan:17:13:46:27:2015
/home/admin/fileA jan:17:13:46:27:2015
/home/admin/fileA jan:17:13:46:27:2015
$ cut -d' ' -f1 file.txt | sort | uniq -c | sort -rn | head -n1
       3 /home/admin/fileA

您可以通过另一个
cut

从最终结果中去掉
3
您可以给出一个示例行吗?/home/admin/file jan:17:13:46:27:2015您可以给出一个示例行吗?/home/admin/file jan:17:13:46:27:2015您可以给出一个示例行吗?/home/admin/file简:17:13:46:27:2015不必要地使用猫?@aioobe绝对。我个人的观点是,在记住哪些命令接受文件参数,哪些不接受文件参数,以及以什么顺序执行,或者执行所需的时间方面,操作系统上附加进程占用的内存比我内存占用的空间要便宜