我试图找到特定目录中超过180天的文件使用的总磁盘空间.这就是我正在使用的:
find . -mtime +180 -exec du -sh {} \;
Run Code Online (Sandbox Code Playgroud)
但上面很安静,显然给了我找到的每个文件使用的磁盘空间.我只想要文件使用的总添加磁盘空间.可以使用find和exec命令完成吗?
请注意,我根本不想使用脚本,如果可以有一个内衬,这将是很好的.任何帮助都非常感谢.
当我尝试对文件进行排序并保存已排序的输出时,就像这样
sort file1 > file1;
Run Code Online (Sandbox Code Playgroud)
file1的内容完全被删除,而当我试图用'tee'这样的命令做同样的事情时
sort file1 | tee file1;
Run Code Online (Sandbox Code Playgroud)
它工作正常[编辑:"工作正常"仅适用于幸运时间的小文件,会导致大数据丢失或无用的进程调度],即它会覆盖file1的排序输出本身并在标准输出上显示它.
有人可以解释为什么第一个案例不起作用?
说,我有一个255.255.255.242的子网,我在该子网内有一个已知的IP,如192.168.1.101.
现在我计算IP范围的方式是这样的:
在子网掩码中,找到不是255的第一个八位字节.在我的例子中,它是第4个八位字节,它的242.所以取256并减去242,这给了我们14.所以我们现在知道这些网络,192.168 .1.x网络,都有14的范围.所以只需开始列出它们......
192.168.1.0
192.168.1.14
192.168.1.28
....42
....56
....70
....84
....98
....112
Run Code Online (Sandbox Code Playgroud)
在这里我们可以停下来 我的地址192.168.1.101属于.98网络..98包含从192.168.1.98到192.168.1.111的所有IP地址,因为我们知道192.168.1.112启动下一个网络.
我想确认一下,这是否是正确和最简单的过程.
就像我们将for循环块的输出重定向到文件一样
for ()
do
//do something
//print logs
done >> output file
Run Code Online (Sandbox Code Playgroud)
同样在shell脚本中,有没有办法将输出从功能块重定向到文件,这样的话?
function initialize {
//do something
//print something
} >> output file
//call initialize
Run Code Online (Sandbox Code Playgroud)
如果没有,还有其他方法可以实现吗?请注意我的功能有很多消息要打印在日志中.将输出重定向到每行的文件将导致大量的I/O利用率.
我经历了很多文档.在文件系统中占用任何空间的硬链接或软链接有很多不一致.任何人都可以为我清除这些内容吗?
对于硬链接,我发现了这个:
我在我的主目录中有一个文件c1,它与同一目录中的d1硬连接.b1和b1的大小为11字节.现在我正在执行"ls -lrt"列出的所有文件的总字节数(不包括d个隐藏文件) (当然)是64个字节.现在,当我删除硬链接d1并再次做一个ls -lrt它给了我60个字节.这并不意味着硬链接占用硬盘空间,但很多docs.negate这个事实,为什么?
我可以检查相同的方式为文件创建一个软链接,然后删除它,但由于我的软链接只有2bytes大小,我不认为删除它会对ls输出中列出的舍入总大小有任何重大影响-lrt.
那是什么呢?
下面是我正在研究的一个更大的脚本的一小部分,但下面给了我很多痛苦,导致一部分较大的脚本无法正常运行.目的是检查变量是否具有匹配的字符串值red hat或Red Hat.如果是,则将变量名称更改为redhat.但它与我使用的正则表达不完全匹配.
getos="red hat"
rh_reg="[rR]ed[:space:].*[Hh]at"
if [ "$getos" =~ "$rh_reg" ]; then
getos="redhat"
fi
echo $getos
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
我有一个使用记事本在Windows中创建的文件:
26453215432460
23543265235421
38654365876325
12354152435243
Run Code Online (Sandbox Code Playgroud)
我有一个脚本,它将读取每一行,并在每个行的其他文件中创建如下所示的命令,不会考虑空白行:
CRE:EQU,264532154324600,432460,1;
Run Code Online (Sandbox Code Playgroud)
现在如果我在输入最后一行数后输入后保存我的输入文件12354152435243,那么输出文件包含上面对应所有数字的命令(包括最后一个12354152435243:
CRE:EQU,264532154324600,432460,1;
CRE:EQU,235432652354210,235421,1;
CRE:EQU,386543658763250,876325,1;
CRE:EQU,123541524352430,435243,1;
Run Code Online (Sandbox Code Playgroud)
但是如果我保存文件,在输入最后一个数字之后没有按下输入,即在此之后12354152435243,那么在脚本执行之后,我看不到输出文件具有最后一个数字的命令:
CRE:EQU,264532154324600,432460,1;
CRE:EQU,235432652354210,235421,1;
CRE:EQU,386543658763250,876325,1;
Run Code Online (Sandbox Code Playgroud)
有人可以解释代码中的错误:
while read LINE
do
[ -z "$LINE" ] && continue
IMEI=`echo $LINE | sed 's/ //g' | sed -e 's/[^ -~]//g'`
END_SERIAL=`echo $IMEI | cut -c9- | sed 's/ //g' | sed -e 's/[^ -~]//g'`
echo "CRE:EQU,${IMEI}0,${END_SERIAL},${list},,${TODAY};" >> /apps/ins/list.out
done < "${FILE_NAME}"
Run Code Online (Sandbox Code Playgroud)
善意的帮助
当我比较2个二进制文件时,有人可以解释md5sum和cksum有什么区别。
我知道的一个区别是cksum还提供了“字节”数以及校验和值,而md5sum没有给出校验和值。
但是我的问题是比较2个二进制文件,我可以选择随意使用其中任何一个,或者在特定情况下它们也具有任何特定目的。
在此先感谢您的帮助
一个非常常见的问题,但我无法用sed解决它.
我有一个脚本文件(一批命令)说myfile.txt要立即执行以创建列表.现在,当我执行批处理操作时,我的命令行界面清楚地显示它无法解析命令,因为换行符^M在每行末尾加起来.
我认为sed这是最好的方式.我试过:
sed -e 's/^M/d' myfile.txt > myfile1.txt
mv myfile1.txt myfile.txt
Run Code Online (Sandbox Code Playgroud)
它没用.我也尝试过这个并没有用:
sed -e 's/^M//g' myfile.txt > myfile1.txt
mv myfile1.txt myfile.txt
Run Code Online (Sandbox Code Playgroud)
然后我想可能sed是在行的开头将它作为M字符,因此没有结果.所以我尝试过:
sed -e 's/\^M//g' myfile.txt > myfile1.txt
mv myfile1.txt myfile.txt
Run Code Online (Sandbox Code Playgroud)
但没有变化.我正在做一个基本的错误吗?请告诉我,我很擅长sed.
我找到了一个解决方案,但是在vi编辑器中打开文件并在命令模式下执行:
:set fileformat=unix
:w
Run Code Online (Sandbox Code Playgroud)
但我也想要它sed.
我在 RHEL 上的 GAWK 版本是:
gawk-3.1.5-15.el5
Run Code Online (Sandbox Code Playgroud)
我想打印一行,如果它的第一个字段包含所有数字(没有特殊字符,甚至要考虑空格)
Example:
echo "123456789012345,3" | awk -F, '{if ($1 ~ /^[[:digit:]]$/) print $0}'
Output:
Nothing
Expected Output:
123456789012345,3
Run Code Online (Sandbox Code Playgroud)
这里出了什么问题?我的 AWK 版本不理解 GNU 字符类吗?请帮忙