我的一个文件夹中有 8 个文件。如果这些文件中的任何一个有 2 行,我需要从该文件中删除第二行。如果一个文件超过 2 行,那么我不需要对其执行任何操作。
答案1
尝试这个脚本它工作正常。
for file in $(ls *.txt)
do
LINENUMB=`wc -l $file | cut -f1 -d' '`
if [[ $LINENUMB == 2 ]]; then
sed -i '$d' $file
fi
done
答案2
与find
和sed
:
find -type f -exec sh -c '[[ $(sed -n $= $0) -eq 2 ]]' {} \; -exec sed -i '1!d' {} +
注意:find
应该根据目录结构进行PATH
调整-maxdepth
。