Для доступа к этим символам необходимо использовать клавишу выбора уровня 3. Обычно клавиша AltGr (aka right Alt) является клавишей выбора уровня 3. Для четвертого символа используйте Shift + AltGr.
Вы можете сделать это, объединив несколько общих инструментов:
find, чтобы перечислить все CSV-файлы (неупорядоченные) и выполнить команду для каждого basename, чтобы извлечь имя файла без .csv ] с пути date, чтобы интерпретировать спецификацию даты в имени файла и преобразовать ее в легко сортируемое число, например, в секундах с 1970 года. echo для печати рассчитанного числа и реального пути к файлу в одной строке для каждого файла sort для сортировки путей файла в соответствии с этим преобразованным номером даты cut для извлечения только путей файла из объединенного списка xargs cat для создания команды путем передачи всех имен файлов для команды cat для конкатенации их.Полная строка выглядит так: если все файлы, которые мы хотим обработать, находятся в папке с именем datecsv:
$ find datecsv/ -name '*.csv' -exec bash -c 'echo "$(date -d "$(basename -s.csv "{}")" +%s) {}"' \; | sort -n | cut -d' ' -f2- | xargs cat
2018,1,1,aaa
2018,1,1,bbb
2018,1,2,ccc
2018,1,2,ddd
2018,4,30,eee
2018,4,30,fff
Мои файлы с примерами, :
$ cat datecsv/April-30-2018.csv
2018,4,30,eee
2018,4,30,fff
$ cat datecsv/January-01-2018.csv
2018,1,1,aaa
2018,1,1,bbb
$ cat datecsv/January-02-2018.csv
2018,1,2,ccc
2018,1,2,ddd
Поскольку вы хотите только номер строки каждого файла, команда для этого будет выглядеть так:
$ find datecsv/ -name '*.csv' -exec bash -c 'echo "$(date -d "$(basename -s.csv "{}")" +%s) {}"' \; | sort -n | cut -d' ' -f2- | xargs -n1 wc -l
2 datecsv/January-01-2018.csv
2 datecsv/January-02-2018.csv
2 datecsv/April-30-2018.csv
Единственное изменение - это последняя часть, где мы используем xargs -n1 wc -l вместо xargs cat, как указано выше.
Некоторые примечания: описанный выше подход относится к вашим именам файлов, которые являются форматом, который date может анализировать. Это относится к именам примеров, которые вы предоставили, но может измениться, если формат изменится. Он также требует, чтобы имя файла заканчивалось строчной буквой .csv. Не уверен, что некоторые специальные символы в именах файлов могут сломать материал (пробелы, вероятно, должны быть безопасными, новые строки, безусловно, сломают его).
Вы можете сделать это, объединив несколько общих инструментов:
find, чтобы перечислить все CSV-файлы (неупорядоченные) и выполнить команду для каждого basename, чтобы извлечь имя файла без .csv ] с пути date, чтобы интерпретировать спецификацию даты в имени файла и преобразовать ее в легко сортируемое число, например, в секундах с 1970 года. echo для печати рассчитанного числа и реального пути к файлу в одной строке для каждого файла sort для сортировки путей файла в соответствии с этим преобразованным номером даты cut для извлечения только путей файла из объединенного списка xargs cat для создания команды путем передачи всех имен файлов для команды cat для конкатенации их.Полная строка выглядит так: если все файлы, которые мы хотим обработать, находятся в папке с именем datecsv:
$ find datecsv/ -name '*.csv' -exec bash -c 'echo "$(date -d "$(basename -s.csv "{}")" +%s) {}"' \; | sort -n | cut -d' ' -f2- | xargs cat
2018,1,1,aaa
2018,1,1,bbb
2018,1,2,ccc
2018,1,2,ddd
2018,4,30,eee
2018,4,30,fff
Мои файлы с примерами, :
$ cat datecsv/April-30-2018.csv
2018,4,30,eee
2018,4,30,fff
$ cat datecsv/January-01-2018.csv
2018,1,1,aaa
2018,1,1,bbb
$ cat datecsv/January-02-2018.csv
2018,1,2,ccc
2018,1,2,ddd
Поскольку вы хотите только номер строки каждого файла, команда для этого будет выглядеть так:
$ find datecsv/ -name '*.csv' -exec bash -c 'echo "$(date -d "$(basename -s.csv "{}")" +%s) {}"' \; | sort -n | cut -d' ' -f2- | xargs -n1 wc -l
2 datecsv/January-01-2018.csv
2 datecsv/January-02-2018.csv
2 datecsv/April-30-2018.csv
Единственное изменение - это последняя часть, где мы используем xargs -n1 wc -l вместо xargs cat, как указано выше.
Некоторые примечания: описанный выше подход относится к вашим именам файлов, которые являются форматом, который date может анализировать. Это относится к именам примеров, которые вы предоставили, но может измениться, если формат изменится. Он также требует, чтобы имя файла заканчивалось строчной буквой .csv. Не уверен, что некоторые специальные символы в именах файлов могут сломать материал (пробелы, вероятно, должны быть безопасными, новые строки, безусловно, сломают его).
Вы можете сделать это, объединив несколько общих инструментов:
find, чтобы перечислить все CSV-файлы (неупорядоченные) и выполнить команду для каждого basename, чтобы извлечь имя файла без .csv ] с пути date, чтобы интерпретировать спецификацию даты в имени файла и преобразовать ее в легко сортируемое число, например, в секундах с 1970 года. echo для печати рассчитанного числа и реального пути к файлу в одной строке для каждого файла sort для сортировки путей файла в соответствии с этим преобразованным номером даты cut для извлечения только путей файла из объединенного списка xargs cat для создания команды путем передачи всех имен файлов для команды cat для конкатенации их.Полная строка выглядит так: если все файлы, которые мы хотим обработать, находятся в папке с именем datecsv:
$ find datecsv/ -name '*.csv' -exec bash -c 'echo "$(date -d "$(basename -s.csv "{}")" +%s) {}"' \; | sort -n | cut -d' ' -f2- | xargs cat
2018,1,1,aaa
2018,1,1,bbb
2018,1,2,ccc
2018,1,2,ddd
2018,4,30,eee
2018,4,30,fff
Мои файлы с примерами, :
$ cat datecsv/April-30-2018.csv
2018,4,30,eee
2018,4,30,fff
$ cat datecsv/January-01-2018.csv
2018,1,1,aaa
2018,1,1,bbb
$ cat datecsv/January-02-2018.csv
2018,1,2,ccc
2018,1,2,ddd
Поскольку вы хотите только номер строки каждого файла, команда для этого будет выглядеть так:
$ find datecsv/ -name '*.csv' -exec bash -c 'echo "$(date -d "$(basename -s.csv "{}")" +%s) {}"' \; | sort -n | cut -d' ' -f2- | xargs -n1 wc -l
2 datecsv/January-01-2018.csv
2 datecsv/January-02-2018.csv
2 datecsv/April-30-2018.csv
Единственное изменение - это последняя часть, где мы используем xargs -n1 wc -l вместо xargs cat, как указано выше.
Некоторые примечания: описанный выше подход относится к вашим именам файлов, которые являются форматом, который date может анализировать. Это относится к именам примеров, которые вы предоставили, но может измениться, если формат изменится. Он также требует, чтобы имя файла заканчивалось строчной буквой .csv. Не уверен, что некоторые специальные символы в именах файлов могут сломать материал (пробелы, вероятно, должны быть безопасными, новые строки, безусловно, сломают его).