2016-03-15 2 views
-1

Я попыталсяПолучить только часть имени файла в Awk

awk '{print FILENAME}' 

И результат был полный путь к файлу. Я хочу получить только имя файла, например: от «test/testing.test.txt» Я просто хочу получить «testing» без «.test.txt».

+0

это должно быть с awk ... как насчет с basename – zee

+0

да, потому что у меня есть эта строка записей в файле, и я хочу вставить имя файла в эти записи строк. и awk был самым быстрым способом сделать это, я думаю, и я использую его сейчас. basename что? не могли бы вы больше использовать? или введите команду для этого? – Bams

+0

Существует команда 'basename '$ file" .test.txt', которая удаляет префикс каталога и суффикс '.test.txt' из имени файла, оставляя просто' тестирование' для имени образца. Одновременно требуется одно имя файла. В чем заключается причина удаления '.text.txt'? Что нужно делать с 'test/.test.txt'? С 'test/abc.def'? С 'test/test.txt.extra'? С 'test.text.txt.extra'? –

ответ

0

Используйте функции sub и/или split, чтобы извлечь часть FILENAME, которую вы хотите.

+0

как правильный формат? im new в awk, не могли бы вы привести мне пример? – Bams

+0

im используя этот скрипт: awk 'function basename (file) { sub (". * /", "", File) Файл с возвратом } {print basename (FILENAME)}', но все же возвращает полный путь, do у вас есть решение? – Bams

+0

Вы на правильном пути. Посмотрите на комментарий @ dawg. – peak

Смежные вопросы