У вас есть символы новой строки, потому что ls
помещает их в отдельные строки. Новые строки исчезают без кавычек, потому что оболочка (bash) передает каждый текст, разделенный пробелами без кавычек, в команду в качестве отдельного аргумента.
Примечание. Подстановка команд выполняется оболочкой , а не ls
, поэтому вам не требуется ls
.
Следовательно, вы можете сделать
#!/bin/bash
echo *.fastq
или
#!/bin/bash
files="*.fastq"
echo "$files"
Просто командой cut
:
echo "pandi/sha/Dev/bin/boot" | cut -d'/' -f2-
sha/Dev/bin/boot
-d'/'
-разделитель полей
-f2-
-диапазон полей для вывода(-f<from>-<to>
; в нашем случае :от 2
до последнего)
С помощьюshell (POSIX sh/bash/Korn/zsh) parameter substitution expansion
.
string="pandi/sha/Dev/bin/boot"
echo "${string#*/}"