Как Илккачу сказал , вы можете заключить в одинарные или двойные кавычки аргумент, который вы передаете этой функции:
line = 'FILE * .txt'
или
line = "FILE * .txt"
Они говорят Bash выполнить замену no или некоторую замену без выполнения расширение имени файла соответственно.
Другой вариант - избежать *
при установке строки, а затем передать аргумент функции, используя кавычки:
line=FILE\*.txt
getFlag "$line"
Для этой цели также можно использовать "csplit", например:
csplit yourfile -s -n 1 -f file_ '%name%' '/name/' '{*}'
Это создаст файлы "file_1", "file_2" и т. Д.
Как насчет:
awk '/name/{n+=1}{print > "file_"n".txt"}'
Что даст file_1.txt
, file_2.txt
... и т.д.