cat一个文件并在一行中检查它

时间:2017-12-28 17:30:46

标签: linux bash shell sh

我的linux命令是

cat /etc/myfile.txt > newfile.txt

我的问题是如何检查文件/etc/myfile.txt是否为空并保存

一个命令行中的文件

2 个答案:

答案 0 :(得分:3)

您可以使用def CurSelect(evt): if liste.curselection(): # To call below statements only when liste has a selected item eintrag.delete(0,END) selected = liste.get(liste.curselection()) for i in range(2): eintrag.insert(END,str(i)+str(selected)) 中的条件表达式检查文件是否存在(bash标志)和为空-f标志。

您也可以使用-s创建文件的新副本,而不是cp

cat

不确定为什么要使用单行代替正确的可读示例。无论如何,你可以使用上面的逻辑

if [[ -f /etc/myfile.txt && -s /etc/myfile.txt ]]; then 
    cp /etc/myfile.txt  newfile.txt
fi

答案 1 :(得分:3)

[[ -f /etc/myfile.txt && -s /etc/myfile.txt ]] && cp /etc/myfile.txt newfile.txt

您不必 [ -s "/etc/myfile.txt" ] && cat /etc/myfile.txt > newfile.txt 该文件,而是使用cat

此处,cp选项检查文件的大小是否为非零。从Linux上的-s开始,

man test

编辑:如果 -s FILE FILE exists and has a size greater than zero 是常规文件,则上述解决方案就足够了。如果要在检查/etc/myfile.txt尺寸之前检查它是否是常规文件,则需要non-zero标记

-f