Вы можете найти команды find
и awk
find . -name "*.csv" -printf "mv \"%f\" |\"%f\" \n" | awk -F"|" ' { gsub(" ","",$2); print } '
Пример тестирования
$ ls -1 *csv
scores.csv
'test _1.csv'
'test _2.csv'
$ find . -name "*.csv" -printf "mv \"%f\" |\"%f\" \n" | awk -F"|" ' { gsub(" ","",$2); print } '
mv "scores.csv" "scores.csv"
mv "test _1.csv" "test_1.csv"
mv "test _2.csv" "test_2.csv"
$
Здесь printf печатает имя файла, используя идентификатор% f, просто добавьте канали напечатайте имя файла 2 раза.
Я использовал трубу здесь, потому что это не будет отображаться в имени файла.Теперь передайте результаты в команду awk с помощью «|»в качестве разделителя и замените пробелы, используя функцию gsub ().
Окончательные результаты можно снова передать ksh для их выполнения
Надеюсь, это поможет