2015-09-03 3 views
0

У меня есть файл с именемОбрежьте имя файла в Unix

ROCKET_25_08:00.csv 

Я хочу, чтобы обрезать имя файла

ROCKET_25_.csv 

Я попытался mv, но mv это не то, что я требовал, потому что будут случаи, когда файлы могут быть более одного.

Я хочу имя до второго _.

Как это получить в unix.

Просьба сообщить.

+0

Что вы имеете в виду * случаи где файлы могут быть более одного *? – ace

+0

может быть два файла: ROCKET_25_08: 00.csv и ROCKET_25_08: 04.csv –

+0

В этом случае я хочу обрезать оба файла одним выстрелом. –

ответ

1

Есть некоторые утилиты, которые обеспечивают более гибкое переименование. Но одно решение, которое не будет использовать что-нибудь другое, но включены инструменты UNIX (например, SED) будет:

ls -d * | sed -re 's/^([^_]*_[^_]*_)(.*)(\....)$/mv -v \1\2\3 \1\3/' | bash 

Это будет работать только в одном каталоге, он не будет обрабатывать подкаталоги.

0

Это не совсем понятно, что вы на самом деле пытаетесь сделать, но если вы просто хотите, чтобы удалить текст между последней подчеркиванием и период, вы можете сделать:

f=ROCKET_25_08:00.csv 
echo ${f%_*}_.csv 
Смежные вопросы