Я получил задание выполнить эти команды в текстовом файле:
Выбрать каждое второе поле из файла Сортировка и выбрать сначала 3 уникальных value s Печатать содержимое каждого value.text в то время как redirecting 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, причем «Германия» является последним значением в списке value s.
Любая из этих команд хороша для меня, но объяснение того, почему обе они не работают (и как их заставить работать), будет более оценено.
В случае, если кто-либо наткнется на этот вопрос: комментарий John1024 к вопросу - правильное решение, хотя есть одна вещь, которую можно заметить - сообщения об ошибках, созданные попыткой распечатать содержимое несуществующих файлов, генерируются [ f1], поэтому, если вам нужно перенаправить свои сообщения об ошибках в другой файл, вы должны добавить 2>error.text в команду rename, а не написать другой | xargs cat 2>error.txt
В случае, если кто-либо наткнется на этот вопрос: комментарий John1024 к вопросу - правильное решение, хотя есть одна вещь, которую можно заметить - сообщения об ошибках, созданные попыткой распечатать содержимое несуществующих файлов, генерируются xargs rename "s/.*/$&.text/", поэтому, если вам нужно перенаправить свои сообщения об ошибках в другой файл, вы должны добавить 2>error.text в команду rename, а не написать другой | xargs cat 2>error.txt
В случае, если кто-либо наткнется на этот вопрос: комментарий John1024 к вопросу - правильное решение, хотя есть одна вещь, которую можно заметить - сообщения об ошибках, созданные попыткой распечатать содержимое несуществующих файлов, генерируются xargs rename "s/.*/$&.text/", поэтому, если вам нужно перенаправить свои сообщения об ошибках в другой файл, вы должны добавить 2>error.text в команду rename, а не написать другой | xargs cat 2>error.txt