从文件中删除行

从文件中删除行

我的一个文件夹中有 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

findsed

find -type f -exec sh -c '[[ $(sed -n $= $0) -eq 2 ]]' {} \; -exec sed -i '1!d' {} +

注意:find应该根据目录结构进行PATH调整-maxdepth

相关内容