Estou tentando ler o número de linhas em um arquivo .list, mas o arquivo .list está dentro de uma pasta. meus códigos são como acima:
#!/bin/sh
echo -e "Enter file location: \c"
read filename
filepath=/filebig/filemedium/filesmall/data.list
filefinalpath=$filename + $filepath
cd $filefinalpath
if [ -e "$filefinalpath" ]
then
total=$(grep -c "#" -c -v $filefinalpath)
echo -e "There are $total lines"
else
echo $filefinalpath not found
fi
meus códigos estão definitivamente errados, mas minha ideia é dizer que um usuário insere a parte frontal e adiciona o $fileaddpath
cd à pasta final. por exemplo, o usuário digita project/user123/folder1
. Isso é então combinado com filepath=/filebig/filemedium/filesmall/data.list
Para obter um resultado final de
cdproject/user123/folder1/filebig/filemedium/filesmall/data.list
Responder1
Você deve mudar a linha:
filefinalpath=$filename + $filepath
ser
filefinalpath="${filename}${filepath}"
Responder2
Vários problemas:
1) cd
significa "alterar diretório" e só permite mover para um diretório, mas falhará para um arquivo.
OK:
cd /path/to/directory
ERRO:
cd /path/to/directory/file.list
2) Combinando strings
stringA=foo
stringB=bar
newstring="$oldstring""$newstring"
3) Contando linhas
Eu sugiro fortemente usar wc
para isso:
wc -l file
retornará o número de linhas.