1つのフォルダに8つのファイルがあります。これらのファイルのいずれかに2行がある場合は、そのファイルから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
。