Выберите файл на основе количества строк и обработайте результат

У меня есть большое количество файлов, все с одинаковым форматом.

line 1: Gene ID line 2: chromosomal position line 3 - x: names of genetic variants) 

Я хочу выбрать только файлы, содержащие не менее 5 вариантов (т.е. файлы, которые содержат не менее 10 строк). Если у файла есть не менее 5 вариантов, я хочу записать содержимое минус первые две строки в новый файл. Ниже я предоставляю два примера входных файлов: foo1 и foo2 .

foo1:

 echo {885743,4:139381:3783883,rs93487,rs82727,rs111} | tr " " "\n" > foo1 

foo2:

 echo {10432,1:3747548:2192993,rs10204,rs262222,rs436363,rs3636,rs9878,rs11856} | tr " " "\n" > foo2 

Желаемый выходной файл (в данном случае только 1 файл, на самом деле будет несколько отдельных выходных файлов): foo2.checked , выглядит так:

 rs10204 rs262222 rs436363 rs3636 rs9878 rs11856 

  # for each file in the current directory you can refine the ls command to match # only the files you want. or if in a script file pass in the file list for file in * do # if the file has more than 10 lines. if (( $(<"${file}" wc -l) > 10 )); then # print line 3 to end of file and pipe it to a file with the same # name as the input file with the added .checked at the end. sed -n '3,$p' -- "${file}" > "${file}.checked" fi done 

предполагая, что в их имени нет файла с забавным символом

  for file in * do line=$(wc -l < "$file' ) if [ $line -ge 10 ] then tail -n +3 <"$file" > "${file}.checked" fi done 

это в основном подсчет строки в каждом файле, а затем, если более 10, напечатайте все строки, начиная с третьего.