Tag: shell script

Сценарий оболочки Bash содержит основной вопрос относительно синтаксиса и basename

Рассмотрим сценарий ниже: myname=`basename $0`; for i in `ls -A` do if [ $i = $myname ] then echo "Sorry i won't rename myself" else newname=`echo $i |tr az AZ` mv $i $newname fi done 1) Я знаю, что basename $0 означает мое имя сценария здесь. Но как? синтаксис информация пожалуйста. Что означает $0 ? […]

изменить шаблон, удалив пробелы?

файл : hi hello,new york, , ,brazil site ,brazil january,month is feb , , ,indiana jones задача: удалите все горизонтальные пространства (пробелы и вкладки) между любыми двумя комами (например,,), если нет символа, кроме пробела. поэтому он будет выглядеть так: hi hello,new york,,,brazil site ,brazil january,month is feb ,,,indiana jones также удалите любое конечное или ведущее […]

временный файл не найден в sh-скрипте

Сначала взгляните на скрипт: touch test.txt touch loc echo "result1" > loc loc >> test.txt echo "result2" > loc loc >> test.txt rm loc Я создаю файлы, один из них loc является временным, и я пытаюсь его написать, но получаю следующее сообщение об ошибке: 5: script.sh: loc: not found 8: script.sh: loc: not found Как […]

Использование sed для замены строки со многими специальными символами?

Я пишу довольно массивный сценарий для проекта и одну из проблем, с которыми я столкнулся, прежде чем я смогу закончить, это использование команды sed. Я пытаюсь найти строку, которая имеет (находится в cache.php): $cache_directory = './cache'; и замените информацию в './cache' на переменную с именем $new_cache_directory . Одна из проблем, с которыми я сталкиваюсь, – […]

UNIX – команда разбивать файл на несколько файлов со всеми строками для каждых 3 уникальных значений в столбце

Рассмотрим приведенный ниже входной файл. Входной файл: C1|C2|C3|C4|C5|C6 0|1|2|3|0-1-2-3|4 0|2|2|4|0-1-2-3|5 0|1|2|3|1-3-2-4|4 0|1|2|3|1-1-3-4|4 0|1|2|3|1-1-3-4|5 0|1|2|3|4-5-2-6|4 0|1|2|3|4-5-2-6|6 0|4|5|3|7-4-2-4|4 0|1|2|3|7-4-2-5|4 0|1|2|3|7-4-2-5|5 0|1|2|3|7-4-2-5|6 0|1|2|3|7-5-2-6|5 Основываясь на поле 5, например 0-1-2-3 в первой записи, ожидается, что файлы разделенных файлов будут разделены следующим образом: Split file1: C1|C2|C3|C4|C5|C6 0|1|2|3|0-1-2-3|4 0|2|2|4|0-1-2-3|5 0|1|2|3|1-3-2-4|4 0|1|2|3|1-1-3-4|4 0|1|2|3|1-1-3-4|5 Разделить файл 2: C1|C2|C3|C4|C5|C6 0|1|2|3|4-5-2-6|4 0|1|2|3|4-5-2-6|6 0|4|5|3|7-4-2-4|4 0|1|2|3|7-4-2-5|4 0|1|2|3|7-4-2-5|5 […]

Могу ли я обновить свои команды (например, awk, sed) до последней версии в Solaris?

bash-3.00# awk '{print NR}' f1.txt 1 2 3 4 но FNR ничего не печатает. awk '{print FNR}' f1.txt приведенная выше строка не дает мне никакого вывода, кажется, что awk, который у меня есть на моем солнце os, не имеет переменной FNR. так что я могу что-то сделать, чтобы стандартизировать его. также, могу ли я получить […]

Inline debug (xxtrace) в скриптах

Есть ли способ принудительно включить или отключить отладку (xxt) для каждой командной строки в сценариях? В Windows Shell («ms-dos») есть «@», который может префикс командной строки, отключив эту строку, если будет отображаться эхо (позволяет сказать, отладка) (эхо). Рассмотрим xxtrace on (set -x), но мы можем опустить его эффект в некоторых строках, префикс которых он позволяет […]

Прочитайте каждый каталог и выполните действия в скрипте Bash

У меня есть эта структура каталогов в /var/sync : # tree -d /var/sync/ /var/sync/ ├── sync_bi │ ├── replicator => Replicator.php │ sync.php ├── sync_pfizer │ ├── replicator => Replicator.php │ sync.php │ replicator.sh │ sync.sh Как вы можете видеть в каждом sync_* есть скрипт под названием sync.php и в каждом каталоге replicator есть скрипт […]

Удалите первые n строк из файла с переменной

Приведенная ниже команда работает для удаления первых трех строк: sed -i -e 1,3d t.txt Поэтому я попытался подставить 3 с переменной в скрипте, как показано ниже NrLines=$(wc -l t.txt) sed -i -e 1,"$NrLines{d}" t.txt и получить следующую ошибку: sed: -e expression #1, char 13: unexpected `}' Что я делаю не так?

Найти набор дополнений массива?

Исходя из этого вопроса , когда я хочу извлечь 10 случайных строк из файла, теперь я хочу также иметь оставшиеся 90 строк в виде отдельного файла. Поскольку документ имеет 100 строк, индексируя от 1 до 100, проблема сводится к поиску набора дополнений ind пределах 1, 2, …, 100 , где ind=$(shuf -i 1-100 -n 10 […]

Linux и Unix - лучшая ОС в мире.