Не может переименовать каждый 'файл' к 'file.text' (использующий xargs)

Я получил задачу сделать эти команды на текстовом файле:

  1. Выберите каждое второе поле из файла
  2. Вид и выбирает сначала 3 уникальных values
  3. Распечатайте содержание каждого value.text при перенаправлении stderr

Вещь, с которой я шел,

cut cities.txt -f1 | sort| uniq | head -3 | xargs rename "s/*/*.text/" * | xargs cat 2>error.txt

но это дает ошибку:

Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE / at (user-supplied code).  

Я также пытался сделать это с mv * *.text, но это не работает, говоря mv: target 'Germany' is not a directory, причем "Германия" является последним значением в списке values.

Любая из этих команд меня устраивает, но объяснение, почему они оба не работают (и как заставить их работать) более ценилось бы.

0
задан 6 January 2018 в 08:36

1 ответ

В случае, если любой когда-либо натыкается на этот вопрос: комментарий John1024 к вопросу является правильным решением, хотя существует одна вещь заметить - сообщения об ошибках, сгенерированные попыткой распечатать содержание несуществующих файлов, сгенерированы xargs rename "s/.*/$&.text/", поэтому, если необходимо перенаправить сообщения об ошибках в другой файл, необходимо добавить 2>error.text к rename команда и не запись другой | xargs cat 2>error.txt

1
ответ дан 2 November 2019 в 05:24

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

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