正確にn個の文字を含む行を削除する

正確にn個の文字を含む行を削除する

大容量の.txtファイルが複数あり、長さが正確に9文字の場合は、行を削除する必要があります。それ以上も以下でもない。

awk / sedを使用してこれを行う方法はありますか?

ベストアンサー1

sedGNUの拡張正規表現を使用してください。

for file in ./*.txt; do
    sed -i -r '/^.{9}$/d' "${file}"
done

(代わりにFreeBSD / macOSで使用して-E(最新バージョンのGNUでも動作します)代わりに)-r-Esed-i ''-i

指摘したとおりドンクリスティ、GNUを使用してsed繰り返す必要はありません。

sed -s -i -r '/^.{9}$/d' ./*.txt

おすすめ記事