Я использовал split
, чтобы разделить CSV-файл со строками + 6 м и преобразовать его в TSV с помощью sed
. Все работало замечательно, мне нужно только избавиться от последней строки последнего файла (файлы имеют алфавитно-нисходящие расширения благодаря split
).
Вот моя файловая структура.
├── persons-with-significant-control-snapshot-2019-03-13.txt
├── psc_aa
├── psc_aa.csv
├── psc_aa.csv.tsv
├── psc_ab
├── psc_ab.csv
├── psc_ab.csv.tsv
├── psc_ac
├── psc_ac.csv
├── psc_ac.csv.tsv
├── psc_ad
├── psc_ad.csv
├── psc_ad.csv.tsv
├── psc_ae
├── psc_ae.csv
├── psc_ae.csv.tsv
├── psc_af
├── psc_af.csv
├── psc_af.csv.tsv
├── psc_ag
├── psc_ag.csv
└── psc_ag.csv.tsv
Я знаю, что последняя строка последнего файла систематически прерывается после преобразования в tsv - теперь возникает проблема: я знаю, как удалить последнюю строку , когда я знаю имя файла, но когда я не т :
sed -i '$d' psc_ag.csv.tsv
Но в идеале этот мини-конвейер будет работать автоматически, поэтому в зависимости от имен программы split
этот sed может измениться.
В псевдокоде мне нужно что-то вроде этого:
for file in psc_*.csv.tsv
if iterating on last_file
do sed -i '$d' last_file