Проблема заключалась в неправильной конфигурации BIOS.
Решение(для моей материнской платы Z170 -D3H ): перейдите в BIOS > Периферийные устройства > Конфигурация SATA и включите здесь . ] Опция Hot Plug для каждого порта SATA. Затем сохраните настройки и перезагрузите компьютер.
Теперь все работает корректно!
Использование именованного канала для создания дополнительного канала для данных между tee
иtr
:
$ mkfifo pipe
$ tee pipe <file | paste - <( tr '[:lower:]' '[:upper:]' <pipe )
a A
b B
c C
Альтернативный вариант (, но не такой красивый ), перемещение tr
слева от|
:
$ mkfifo pipe
$ tee >( tr '[:lower:]' '[:upper:]' >pipe ) <file | paste - pipe
Вам нужен дополнительный именованный канал, чтобы иметь возможность передавать данные, преобразованные с помощью tr
в paste
. Утилита paste
должна считывать два потока: исходные данные и преобразованные данные. Один из них может быть стандартным потоком, а другой должен поступать либо из исходного файла (, считывающего файл во второй раз ), либо из именованного канала, как показано выше.
простое решение с использованием awk
awk ' { print $0, toupper($0) ; } ' /tmp/tmp1.txt
или
( echo a ; echo b ; echo c ; ) | awk ' { print $0, toupper($0) ; } '
или с помощью именованного конвейера или fifo
( echo a ; echo b ; echo c ) |
(
D=$(mktemp -d) ;
(
cd $D ;
mkfifo fifo_a fifo_b ;
paste fifo_b <( tr '[:lower:]' '[:upper:]' < fifo_a ) &
tee fifo_a > fifo_b ;
wait ;
rm fifo_a fifo_b
) ;
rmdir $D
)