2015-03-22 2 views
0

У меня есть тысячи файлов csv, я хочу удалить первую строку (заголовок) и первый столбец. Это мой код, но он перезаписывает исходные файлы без содержимого:Удаление первой строки или строки (заголовка) и первого столбца из нескольких файлов csv

для j в * .csv; do sed '1d' $ j | cut -d, -f 1> "$ j"; сделано

Благодаря

ответ

0

Это мой код, но перезаписать исходные файлы без каких-либо содержания

Это происходит потому, что перенаправление вывода > "$j" вызывает файл усекается до нуля до того, как его содержимое будет прочитано. Чтобы этого избежать, можно использовать временный выходной файл.
Незначительная ошибка в коде заключается в том, что вы указали удаляемый столбец вместо столбцов, которые должны храниться в команде cut.

Исправленный код:

for j in *.csv; do sed 1d $j | cut -d, -f2- >new$j && mv new$j $j; done 
Смежные вопросы