Изменение расширения файлов в цикле [dубликат]

Чтобы убить всех зарегистрированных пользователей для :1, используйте эту команду:

awk '/\s:1\s/ {system("sudo kill -9 "$6)}' <<< $(who -u)

В вашем случае user2

user2   :1           2014-08-18 18:21   ?         25745 (:1)

Или все сеансы для user2 по имени пользователя

awk '/^user2\s/ {system("sudo kill -9 "$6)}' <<< $(who -u)
0
задан 14 December 2017 в 09:50

3 ответа

См. 10.1. Манипулирование Strings-TLDP.org для подробного обсуждения манипуляций с строкой bash. Этот ответ unix se имеет неотъемлемую часть ответа. Просто измените «txt» на $ext и «text» на $next. Результирующий скрипт мог бы выглядеть.

#!/bin/bash
read -p "type the path for folder " folder                                 
read -p "type the extension of files to be renamed " ext
read -p "type the extension you want to add " next
# TODO add sanity checks for the user supplied input
cd $folder
# rename
#rename "s/.$ext$/.$next/" *.$ext
# mv in a loop
for f in *.$ext; do 
# the '--' marks the end of command options so that files starting with '-' wont cause problems.
# Replaces the first match for '.$ext' with '.$next'.
#mv -- "$f" "${f/$ext/$next}"
# Replaces the any match for '.$ext' with '.$next'.
#mv -- "$f" "${f//$ext/$next}"
# Replaces front-end match of for '$ext' with '$next'
#mv -- "$f" "${f/#$ext/$next}"
# Replaces back-end match of for '$ext' with '$next'
mv -- "$f" "${f/%$ext/$next}"
done

Это 10.1. Манипулирование строк имеет много подходов, которые необязательно нуждаются в цикле. Я бы предпочел rename, см. Прокомментированные строки в приведенном выше скрипте.

1
ответ дан 22 May 2018 в 17:00
  • 1
    J. Starnes, Не могли бы вы объяснить больше этого: mv - " $ f " & Quot; $ {е //.$ доб /.$ следующий} & Quot; – Josef Klimuk 26 December 2017 в 09:40

См. 10.1. Манипулирование Strings-TLDP.org для подробного обсуждения манипуляций с строкой bash. Этот ответ unix se имеет неотъемлемую часть ответа. Просто измените «txt» на $ext и «text» на $next. Результирующий скрипт мог бы выглядеть.

#!/bin/bash read -p "type the path for folder " folder read -p "type the extension of files to be renamed " ext read -p "type the extension you want to add " next # TODO add sanity checks for the user supplied input cd $folder # rename #rename "s/.$ext$/.$next/" *.$ext # mv in a loop for f in *.$ext; do # the '--' marks the end of command options so that files starting with '-' wont cause problems. # Replaces the first match for '.$ext' with '.$next'. #mv -- "$f" "${f/$ext/$next}" # Replaces the any match for '.$ext' with '.$next'. #mv -- "$f" "${f//$ext/$next}" # Replaces front-end match of for '$ext' with '$next' #mv -- "$f" "${f/#$ext/$next}" # Replaces back-end match of for '$ext' with '$next' mv -- "$f" "${f/%$ext/$next}" done

Это 10.1. Манипулирование строк имеет много подходов, которые необязательно нуждаются в цикле. Я бы предпочел rename, см. Прокомментированные строки в приведенном выше скрипте.

1
ответ дан 18 July 2018 в 01:14

См. 10.1. Манипулирование Strings-TLDP.org для подробного обсуждения манипуляций с строкой bash. Этот ответ unix se имеет неотъемлемую часть ответа. Просто измените «txt» на $ext и «text» на $next. Результирующий скрипт мог бы выглядеть.

#!/bin/bash read -p "type the path for folder " folder read -p "type the extension of files to be renamed " ext read -p "type the extension you want to add " next # TODO add sanity checks for the user supplied input cd $folder # rename #rename "s/.$ext$/.$next/" *.$ext # mv in a loop for f in *.$ext; do # the '--' marks the end of command options so that files starting with '-' wont cause problems. # Replaces the first match for '.$ext' with '.$next'. #mv -- "$f" "${f/$ext/$next}" # Replaces the any match for '.$ext' with '.$next'. #mv -- "$f" "${f//$ext/$next}" # Replaces front-end match of for '$ext' with '$next' #mv -- "$f" "${f/#$ext/$next}" # Replaces back-end match of for '$ext' with '$next' mv -- "$f" "${f/%$ext/$next}" done

Это 10.1. Манипулирование строк имеет много подходов, которые необязательно нуждаются в цикле. Я бы предпочел rename, см. Прокомментированные строки в приведенном выше скрипте.

1
ответ дан 24 July 2018 в 17:21

Другие вопросы по тегам:

Похожие вопросы: