bash :/usr/bin/sed :Нет такого файла или каталога

шаг 1

sed -r  "s/\s+$//g" orgial_textfile| awk '{print $0"|"}' >>orginal_final_textfile

Шаг 2

сохранить нужную переменную массива _скопировать _текстовый файл

sample need_copy_textfile format will be

133.7545755174117347
197.5730453102068415
211.0612457141076671
195.3965252988823307
155.9141492798344956
122.0765862336716795
109.3807402580878840
100.1258594727256394
118.3713165600757955
129.9118732920391577
130.2183465952591614
108.3783455600275339
87.3744866455706415
.
.
.

75.0594939607898664


awk '{print substr($1,1,6)}' need_copy_textfile >> need_copy_textfile_final.txt

шаг 3

Теперь объедините два вышеуказанных файла, чтобы получить требуемый результат

paste orginal_final_textfile need_copy_textfile_final.txt | sed -r "s/\t+//g" 

Пример вывода

61537000|COO|DI|VMD|2018-01-08 00:00:00|133.75
61537000|COO|DI|VMD|2018-01-09 00:00:00|197.57
61537000|COO|DI|VMD|2018-01-10 00:00:00|211.06
61537000|COO|DI|VMD|2018-01-11 00:00:00|195.39
61537000|COO|DI|VMD|2018-01-12 00:00:00|155.91
6
22.09.2020, 06:46
3 ответа

Я думаю, проблема в том, что вы переопределили command, встроенную:

$ help command | head --lines=2
command: command [-pVv] command [arg...]
    Execute a simple command or display information about commands.

commandобычно используется для игнорирования псевдонимов и функций для явного запуска встроенной или исполняемой программы напрямую. Это полезно, чтобы избежать бесконечных циклов. Например:

ls() {
    command ls --color=auto
}

Это вызывает исполняемый файл lsвместо того, чтобы рекурсивно вызывать себя навсегда.

unset commandи найдите любое использование commandв своем профиле Bash.

0
18.03.2021, 23:03

Это всего лишь предположение, но sedвероятно, это динамически -связанный 64 -битный двоичный файл. При удалении lib64ядро ​​больше не может найти динамический компоновщик, необходимый для выполненияsed(и, вероятно, всего остального ). no such file or directoryне для sed, а для компоновщика.

0
18.03.2021, 23:03

это связано с /etc/profile.d/vte.sh

case "$TERM" in
  xterm*|vte*)
    [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command"
    [ -n "$ZSH_VERSION"  ] && precmd_functions+=(__vte_osc7)
    ;;
esac
vte_prompt_command() {
  ######### HERE : bash tries to look up comletions with sed ###
  local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//')
  ############################################################
  command="${command//;/ }"
  local pwd='~'
  [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/}
  printf "\033]777;notify;Command completed;%s\007\033]0;%s@%s:%s\007%s" "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)"
}

просто удалите это (, затем вы должны использовать правильное имя файла)

sed 's/^ *[0-9]\+ *//'

исправлено!

0
18.03.2021, 23:03

Теги

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