| xargs 分成多列
时间: 2023-08-03 20:46:42 浏览: 123
可以通过使用 xargs 命令的 -n 选项指定每行包含的参数个数,从而将参数列表分成多列。例如,要将参数列表分成两列,可以使用 xargs -n2 命令。假设输入的参数列表为 a b c d e f,则该命令会将其分成两列,即 a b 和 c d 和 e f,然后对每列执行一次命令。如果没有指定命令,则默认使用 echo 命令输出每列参数。
相关问题
| xargs 分成多行多列
可以通过使用 xargs 命令的 -n 和 -L 选项结合使用,将参数列表分成多行多列。-n 选项指定每行包含的参数个数,-L 选项指定每次执行命令所使用的行数。例如,要将参数列表分成两行三列,可以使用 xargs -n3 -L2 命令。假设输入的参数列表为 a b c d e f,则该命令会将其分成两行三列,即 a b c 和 d e f,然后对每行执行一次命令。如果没有指定命令,则默认使用 echo 命令输出每行参数。
find /root/app/tcu/data/log/.log -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/.log.0 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/.log.1 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/.log.2 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/.log.3 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/.log.4 -mtime +2 -type f |xargs -i gzip {} # /root/app/tcu/data/ccuLog find /root/app/tcu/data/ccuLog/.log -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/.log.0 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/.log.1 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/.log.2 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/.log.3 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/.log.4 -mtime +2 -type f |xargs -i gzip {} # /root/app/remote/data/log find /root/app/remote/data/log/.log -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/.log.0 -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/.log.1 -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/.log.2 -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/.log.3 -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/.log.4 -mtime +2 -type f |xargs -i gzip {} 改成循环语句,文件夹内的.gz文件不进行压缩,要用#!bin/bin/sh方式
#!/bin/bash
# Define the directories to be searched
directories=(/root/app/tcu/data/log /root/app/tcu/data/ccuLog /root/app/remote/data/log)
# Loop through the directories
for dir in "${directories[@]}"
do
# Loop through the log files in the directory
for log_file in "$dir"/*.log*
do
if [[ -f "$log_file" && ! "$log_file" =~ \.gz$ ]]; then
# Check if the file is older than 2 days and if it is not already compressed
if [[ "$(find "$log_file" -mtime +2 -type f | wc -l)" -gt 0 && ! -f "${log_file}.gz" ]]; then
# Compress the file
gzip "$log_file"
fi
fi
done
done
echo "Compression complete!"
阅读全文