Что-то вроде строк
awk 'BEGIN{FS=","; OFS=","} {print $3, $5}' input_file.csv > output_file.csv
Должно работать
Использование Raku (, ранее известного как Perl6)
~$ raku -ne '.trim-leading.put if.words[0].grep(rx/"**"? <(254 | 1 | 3 | 9)> /) | (.words[0].grep("4" | "**4") &&.words[1].grep(rx/1000 | 925 | 850 /)) ;' UABalloon.txt
**254 12 1 JAN 2002
1 94703 72501 40.87N 72.87W 20 1116**
**3 OKX 32767 ms**
**9 1014 20 -105 -130 310 5**
**4 1000 131 -45 -95 315 20**
**4 925 741 -75 -155 20 36**
**4 850 1393 -117 -197 290 56**
254 0 2 JAN 2002
1 94703 72501 40.87N 72.87W 20 2305
3 OKX 32767 ms
9 1016 20 -13 -113 320 36
4 1000 150 -13 -123 320 72
4 925 764 -71 -141 320 144
4 850 1416 -125 -185 340 164
Приведенный выше код .grep
основан на функции Раку .words
, которая выполняет разбиение по пробелам. Включен код для захвата строк, начинающихся с «**
». Метод .trim-leading
удаляет ведущие пробелы из вывода.
Как видите, это решение состоит из двух шагов. Чтобы обрезать начальные концевые звездочки -и -, запустите код выше, сохраните в tmp_file.txt
, а затем запустите код ниже:
~$ raku -pe 's:g/ \** (.+?) \** /$0/;' tmp.txt
254 12 1 JAN 2002
1 94703 72501 40.87N 72.87W 20 1116
3 OKX 32767 ms
9 1014 20 -105 -130 310 5
4 1000 131 -45 -95 315 20
4 925 741 -75 -155 20 36
4 850 1393 -117 -197 290 56
254 0 2 JAN 2002
1 94703 72501 40.87N 72.87W 20 2305
3 OKX 32767 ms
9 1016 20 -13 -113 320 36
4 1000 150 -13 -123 320 72
4 925 764 -71 -141 320 144
4 850 1416 -125 -185 340 164
ХТН.