1、Linux 统计多个文件的合计大小输出精确的字节数
M 单位输出:-cm
G单位输出:-ch
kb单位输出:-ck
```bash
du -cb /path/to/files/* | grep total$ | awk '{print $1}'
&&
du -cb '/path/to/files/a.csv' '/path/to/files/b.csv' '/path/to/files/c.csv' | grep total$ | awk '{print $1}'
```
在这个命令中,`-b`选项告诉`du`命令以字节为单位显示文件大小。
`grep`命令用于筛选出包含"total"的行,即合计行。
`awk`命令用于提取合计大小并进行输出。
请确保将`/path/to/files/*`替换为您实际的文件路径。
2、 Linux 统计hdfs多文件的合计大小以字节单位输出
以下是一个示例命令来统计HDFS上多个文件的合计大小:
```bash
hdfs dfs -du -s /path/to/files/* | awk '{sum+=$1} END {print sum}'
&&
hdfs dfs -du -s '/path/to/files/a.csv' '/path/to/files/b.csv' '/path/to/files/c.csv' | awk '{sum+=$1} END {print sum}'
```
在这个命令中,`hdfs dfs -du`用于显示HDFS上文件的大小,`-s`选项用于汇总文件大小,`/path/to/files/*`是您要统计的多个文件的路径。
`awk`命令用于提取文件大小并进行求和。
请确保将`/path/to/files/*`替换为您实际的文件路径。
3、Linux 如果出现csv文件内容出现换行符需要替换掉
# linux
# ① 如果出现csv文件内容出现换行符需要替换掉,并另存为一个新文件
shell = rf"""sed -e ':a' -e 'N' -e '$!ba' -e 's/\([^"]\)\n/\1/g' {remote_file} > {transform_file_path}"""
# ② 如果出现csv文件内容出现换行符需要替换掉,覆盖源文件
shell = rf"""sed -i ':a;N;$!ba;s/\([^"]\)\n/\1/g' {remote_file}"""
解释:
-
sed -i
:这是sed
的编辑文件内联选项,它会直接修改文件内容。 -
:a;N;$!ba
:这是一个循环,会读取所有行并拼接成一个大的长字符串,直到文件结束。 -
s/\([^"]\)\n/\1/g
:在拼接后的字符串上执行全局替换,将前一位为非双引号的换行符替换为空。
4、hdfs dfs -rm -R -skipTrash hdfs://xxxxx
hdfs dfs -rm -R -skipTrash
是一个用于Hadoop分布式文件系统(HDFS)的命令行操作,用于删除目录和其中的所有文件。-R
或 --recursive
表示递归删除,-skipTrash
表示直接删除文件,不将其移动到垃圾箱中。