Запитання з тегом «string»

Маніпуляція з рядками: вилучення частини рядка, заміна тексту, форматування до заданої ширини тощо.


4
Як POSIX-лі підрахувати кількість рядків у рядковій змінній?
Я знаю, що можу це зробити в Bash: wc -l <<< "${string_variable}" По суті, все, що я знайшов, стосувалося <<<оператора Bash. Але в оболонці POSIX <<<не визначено, і мені не вдалося знайти альтернативний підхід протягом кількох годин. Я впевнений, що для цього є просте рішення, але, на жаль, я цього …

6
знайдіть лінії, починаючи з рядка
У мене є маса файлів, і я хочу знайти, який містить послідовні рядки, починаючи з певного рядка. Наприклад для наступного файлу: Aaaaaaaaaaaa Baaaaaaaaaaa Cxxxxxxxxx Cyyyyyyyyy Czzzzzzzzz Abbbbbbbbbbb Bbbbbbbbbbbb Caaaaaa Accccccccccc Bccccccccccc Cdddddd Ceeeeee Існує більше одного рядка, що починається з "C", тому я хочу, щоб цей файл був знайдений командою. …
10 bash  sed  grep  string 

5
Зіставлення шаблонів у назвах шляхів у bash
Я хочу діяти у списку підкаталогів у каталозі. Поміркуйте: for x in x86-headers/*/C/populate.sh; do echo $x; done Це дає x86-headers/elf/C/populate.sh x86-headers/gl/C/populate.sh x86-headers/gmp/C/populate.sh x86-headers/gnome2/C/populate.sh x86-headers/gtk2/C/populate.sh x86-headers/jni/C/populate.sh x86-headers/libc/C/populate.sh Але я хочу значення, відповідає другій частині шляху, elf, glі т.д. Я знаю , як здирати провідний x86-headers. for x in x86-headers/*/C/populate.sh; do i=${x##x86-headers/}; …


2
Будуйте команду динамічно
Я працюю над сценарієм і мені потрібно будувати tarкоманду динамічно. Ось два приклади, щоб проілюструвати те, що я намагаюся зробити: #!/bin/bash TAR_ME="/tmp" EXCLUDE=("/tmp/hello hello" "/tmp/systemd*" "/tmp/Temp*") _tar="tar "`printf -- '--exclude="%s" ' "${EXCLUDE[@]}"`" -zcf tmp.tar.gz" echo COMMAND: "${_tar}" ${_tar} "$TAR_ME" echo -e "\n\nNEXT:\n\n" EXCLUDE=("--exclude=/tmp/hello\ hello" "--exclude=/tmp/systemd*" "--exclude=/tmp/Temp*") _tar="tar "`printf -- '%s …

4
Розділити рядок на двокрапку в / бін / ш
Мій dashсценарій приймає параметр у вигляді hostname:port, тобто: myhost:1234 Тоді як порт необов’язковий, тобто: myhost Мені потрібно прочитати хост і порт в окремі змінні. У першому випадку я можу: HOST=${1%%:*} PORT=${1##*:} Але це не працює у другому випадку, коли порт був пропущений; echo ${1##*:}просто повертає ім'я хоста замість порожнього рядка. …
9 shell  string  dash 

5
Як скоротити / шлях / до / файл до / p / t / файл
Я шукаю елегантний однолінійний (наприклад, awk), який скоротить рядок шляху Unix, використовуючи перший символ кожного батьківського / проміжного рівня, але повне базове ім'я. Простіше показати на прикладах: /path/to/file → /p/t/file /tmp → /tmp /foo/bar/.config/wizard_magic → /f/b/./wizard_magic /foo/bar/.config/wizard_magic→ /f/b/.c/wizard_magic Зважаючи на хороші моменти @ MichaelKjörling та @ChrisH нижче, цей приклад показує, …
9 sed  awk  string 

4
Як стверджувати, що рядок має новий рядок, і, якщо так, видалити його
У мене є рядок, який є результатом якоїсь операції, над якою я не маю ніякого контролю. Коли я друкую цю змінну за допомогою echo, я отримую: echo $myvar hello Однак коли я if [ $myvar = "hello" ]; then echo they are equal else echo they are not equal fi …
9 bash  string 

2
Маніпулювання струнними баш-ланцюгами
Я читав деякі інші питання з маніпулювання стрункою bash string, але вони здаються спеціалізованими програмами. По суті, чи є спосіб зробити наступне простішим? замість $ string='hello world'; string2="${string// /_}"; echo "${string2^^}" HELLO_WORLD щось на зразок $ echo 'hello world' | $"{-// /_}" | "${ -^^}" HELLO_WORLD Редагувати Мені цікаво залишатися …

2
греп оточуючих персонажів сірника
Я хочу знайти і замінити гігантський дамп бази даних, і він не робить те, що, на мою думку, має відбутися. Я хотів би прогорнути мій цільовий рядок у файлі, а потім побачити навколишні 8 символів або близько того (мені може знадобитися коригувати це число, залежно). Як я можу це зробити? …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.