команда, не найденная и синтаксическая ошибка около неожиданного маркера

Вы могли сделать это как это с awk:

awk 'BEGIN { FS = OFS = "\t" } { for(i=1; i<=NF; i++) if($i ~ /^ *$/) $i = 0 }; 1' file

Объяснение

Установка FS и OFS к вкладке гарантирует, что вывод правильно разграничен. Взгляды для цикла на каждое поле и обнуляют его, если это пусто. Тот в конце является сокращением от { print $0 }.

3
27.04.2016, 21:36
3 ответа

Первое сообщение об ошибке : command not found вместо обычного формата bash: SOMECOMMAND: command not found. Это указывает, что что-то подозрительное продолжается.

То, что продолжается, - то, что Ваш сценарий содержит символы возврата каретки в конце некоторых строк. В соответствии с Windows, новая строка представлена CR с двумя последовательностями символов, LF (возврат каретки, сопровождаемый с методической точностью, питаются). Под всеми разновидностями Unix новая строка представлена символом LF только. Bash видит строку как SOMECOMMAND␍ были символ CR, который это анализирует как вызов к названной команде SOMECOMMAND␍. С тех пор нет такой команды, удар отображает свое обычное сообщение об ошибке.

В терминале управляющий символ CR кладет обратно курсор к началу строки. Таким образом, остальная часть сообщения перезаписывает название команды.

Фиксация не должна использовать редактора Windows, чтобы отредактировать сценарии оболочки или настроить Вашего редактора для не помещения символов CR в сценарии оболочки.

Для преобразования существующего файла на месте в соответствии с Linux или Cygwin от окончаний строки Windows до окончаний строки Unix можно использовать следующую команду. Это работает, даже если исходный файл смешал Windows и окончания строки Unix.

sed -i -e 's/\r$//' parte.sh
4
27.01.2020, 21:17

Использовать split(1), например. split --lines=50000 pa.txt (или набор Ваш собственный префикс). Вероятно, очень, намного быстрее, чем плохой awk.

DESCRIPTION
   Output  fixed-size  pieces of INPUT to PREFIXaa, PREFIXab, ...; default
   size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or  when
   INPUT is -, read standard input.
3
27.01.2020, 21:17

Если это - sh сценарий, похоже, что ошибка находится в Вашем функциональном определении.

desc()
{

Должен быть:

function desc {

Пример сценария:

#!/bin/bash
function desc {
echo Hi
}
echo Starting
desc
echo Ending

-2
27.01.2020, 21:17
  • 1
    Вы попробовали? Путем это, хорошо работает. –  Kevin 23.10.2013, 00:53
  • 2
    я попробовал его под старой версией Red Hat Cygwin и самой первой вещи, которую я изменил, включал старый функциональный метод определения и хижину. Функции сценария оболочки должны быть объявлены "function_name ()". Однако я предположил, что ошибка операции в секунду могла бы иметь некоторое отношение к старой или несовместимой оболочке наряду с пропавшими без вести хижины. Следующая ошибка, которую имел тот же самый сценарий, была "awk: cmd. line:10: (FILENAME=- FNR=1) fatal: expression for ``<' redirection has null string value``" В некоторых ответах выше, почему бы не использовать unix2dos? Я думал, что это было стандартно с Cygwin. –  tamarintech 24.10.2013, 17:30

Теги

Похожие вопросы