955得票10回答
如何在文件中替换字符串?

替换文件中的字符串是一项非常常见的任务。我该如何: - 在当前目录中的所有文件中将字符串 "foo" 替换为 "bar"? - 递归地对子目录执行相同的操作? - 只有当文件名与另一个字符串匹配时才进行替换? - 只有在特定上下文中找到字符串时才进行替换? - 只有在特定行号上找到字符串时才...

123得票13回答
在目录列表中显示文件大小总和

Windows的`dir`目录列表命令在末尾显示了所列文件占用的总空间量。例如,`dir *.exe`会显示当前目录中所有的`.exe`文件及其大小,以及它们的大小之和。我希望我的bash中的`dir`别名也能具有类似的功能,但我不确定该如何实现。 目前,我在我的`.bash_profile...

112得票7回答
grep、awk和sed有基础教程吗?

我已经使用Linux一段时间了,对大多数常见的命令行工具有相当不错的理解。然而,在编程方面反复出现的工具有grep、awk和sed。 到目前为止,我只用过grep将内容传送给它以在日志文件、ps等的输出中查找文件。我还没有使用过awk或sed。有没有关于这些工具的好教程呢?

107得票5回答
使用awk来根据另一列的值对某一列的数值进行求和。

我正在尝试使用awk来对一列中的特定数字进行求和。我想要对"smiths"这个列的第三列进行求和,得到总和为212。我可以使用awk对整个列进行求和,但无法只对"smiths"这一列进行求和。我的代码如下: awk 'BEGIN {FS = "|"} ; {sum+=$3} END {pri...

106得票6回答
如何使用shell命令在文本文件中只显示第一列和最后一列?

我需要帮助来弄清如何使用sed命令只显示文本文件中的第一列和最后一列。以下是我目前对第一列的处理: cat logfile | sed 's/\|/ /'|awk '{print $1}' 我的微弱尝试是让最后一列也显示出来: cat logfile | sed 's/\|/ /'|a...

102得票5回答
删除包含特定字符串的行以及其后面的行

我用这个命令`cat foo.txt | sed '/bar/d'`来删除文件中包含字符串`bar`的行。 但是我希望不仅删除这些行,还要删除它们后面的行。最好使用MinGW32中可用的`sed`、`awk`或其他工具来实现。 这有点像在`grep`中使用`-A`和`-B`来打印匹配的行以...

100得票8回答
如何以人类可读的格式列出目录中每个文件的行数。

我有一个包含大型CSV文件的目录和子目录列表。这些文件中大约有5亿行,每一行都是一条记录。我想知道: 每个文件有多少行。 每个目录有多少行。 总共有多少行。 最重要的是,我需要以“人类可读的格式”呈现,例如12,345,678而不是12345678。 学习三种方法来完成这个任务会很好...

95得票7回答
如何从cat输出中读取第一行和最后一行?

我有一个文本文件。任务是在之后获取文件的第一行和最后一行。 $ cat file | grep -E "1|2|3|4" | commandtoprint $ cat file 1 2 3 4 5 需要这个没有猫的输出(只有1和5)。 ~$ cat file | tee >(h...

89得票13回答
如何在Linux中使用Shell脚本解析JSON?

我有一个来自JSON输出的需在Linux中提取一些参数的要求。 以下是JSON输出内容: { "OwnerId": "121456789127", "ReservationId": "r-48465168", "Groups": [], ...

87得票2回答
根据行号替换字符串

我有一个情况,我想在许多文件中替换特定的字符串。 将字符串AAA替换为另一个字符串BBB,但有很多以AAA开头或以AAA结尾的字符串,并且我只想替换第34行的一个字符串,其他保持不变。 是否可以通过行号指定,在所有文件中该字符串确切地位于第34行?