Я пытаюсь разделить имена файлов, соответствующие определенному, в отдельный файл, а его содержимое - в разные файлы, соответствующие определенному шаблону. У меня есть имена файлов со специальными символами, такими как '|'
Я пытался использовать команду grep. Grep Ril и Grep -H, чтобы напечатать имена файлов, но это не работает.
#!bin/bash
cd home/test
let "x = 1"
for file in $(find home/test/* -type f -name "*.txt") ;
do
var=$(echo "${x}|fill|${file##*/}")
echo "${var}" | grep -n "*|fill|*.txt" >header.txt
myvar=$(sed 's/^/'${x}'|/g' ${file})
echo "${myvar}" |grep -n "*|Ball|*" >Ball.txt
echo "${myvar}" |grep -n "*|Fire|*" >Fire.txt
let x=x+1
done
unset 'x'
let x=x+1
done
unset 'x
У меня есть имена файлов в этом формате:
1|fill|abc.txt
2|fill|def.txt
Заполнение остается одинаковым во всех файлах. Конечный файл для этого должен иметь значения, подобные этому
1|fill|abc.txt
2|fill|def.txt
3...
4...
5...
etc...
Затем каждый файл содержит различное содержимое.
Файл1 содержит данные, аналогичные этому шаблону:
1|Ball|202029|
1|Cat|202029|
1|fire|202898
...
Файл 2 содержит данные, аналогичные этому шаблону:
2|Bat|202029|
2|Ball|202029|
2|cat|202898
Теперь окончательный вывод должен быть таким, чтобы все данные, содержащие «ball», были в отдельном файле, «cat» в отдельном файле, «fire» в отдельном файле и т. Д.