Estoy intentando leer la cantidad de líneas en un archivo .list pero el archivo .list está dentro de una carpeta. mis códigos son los anteriores:
#!/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
Mis códigos son definitivamente incorrectos, pero mi idea es que digamos que un usuario ingresa la parte frontal y la agrega al $fileaddpath
CD en la carpeta final. por ejemplo, claves de usuario en project/user123/folder1
. Esto luego se combina con filepath=/filebig/filemedium/filesmall/data.list
Para obtener un resultado final de
cdproject/user123/folder1/filebig/filemedium/filesmall/data.list
Respuesta1
Deberías cambiar de línea:
filefinalpath=$filename + $filepath
ser
filefinalpath="${filename}${filepath}"
Respuesta2
Varios asuntos:
1) cd
significa "cambiar directorio" y solo permite moverse a un directorio, pero fallará para un archivo.
DE ACUERDO:
cd /path/to/directory
ERROR:
cd /path/to/directory/file.list
2) Combinando cuerdas
stringA=foo
stringB=bar
newstring="$oldstring""$newstring"
3) Contando líneas
Recomiendo encarecidamente utilizar wc
para esto:
wc -l file
devolverá el número de líneas.