На этот вопрос нельзя ответить простым способом, но здесь вы найдете очень хороший учебник.
Очень простой способ сделать это - использовать команду locate следующим образом:
locate Documents/rawdata/Geob*/datalist.mb-1 > master.txt
То есть, если полные пути в порядке. [!d2 ]
Однако, если вам нужен формат, который вы описали выше, только с подкаталогом и файлом geo, вы могли бы использовать простой скрипт python, подобный этому:
#!/bin/python
f = open("/path/to/master.txt","r+")
paths = [x.split("/",3)[-1] + " -1" for x in f.readlines()]
f.seek(0)
f.write("".join(paths))
f.truncate()
f.close()
Немного усеченная версия Ответ напогео:
locate ~/Documents/rawdata/*/datalist.mb-1 | awk -F/ '{print $4 "/" $5 " -1"}' > master.txt
Untested
Вы можете использовать bash, чтобы составить список всех файлов в одном файле .txt (просто используйте команду find, чтобы найти файлы «datalist», а затем пропустите, что файл).
В python вы можете использовать этот список файлов (например, datalist_master.txt) следующим образом:
fi = file.open('datalist_master.txt', 'r')
li = fi.readlines()
new_li = []
for element in li:
# get rid of unnecessary path info
element = element.lstrip('Documents/rawdata/')
# add last two digits
element = element + ' ' + element[-2:]
new_li.append(element)
fi.close()
print new_li #or save it somewhere
Это, безусловно, также возможно в bash (но я не знаю как).