bashshellshprocess-substitution

Shell read from files with tail


I am currently trying to read from files with shell. However, I met one sytax issue. My code is below:

while read -r line;do
    echo $line
done < <(tail -n +2 /pathToTheFile | cut -f5,6,7,8 | sort | uniq )

However, it returns me error syntax error near unexpected token('`

I tried with following How to use while read line with tail -n but still cannot see the error.

The tail command works properly.

Any help will be apprepricated.


Solution

  • process substitution isn't support by the posix shell /bin/sh. It is a feature specific to bash (and other non posix shells). Are you running this in /bin/bash?

    Anyhow, the process substitution isn't needed here, you could simple use a pipe, like this:

    tail -n +2 /pathToTheFile | cut -f5,6,7,8 | sort -u | while read -r line ; do
        echo "${line}"
    done