Почему извлечение подстроки извлекает целые слова вместо символов? - PullRequest
0 голосов
/ 27 января 2019

Для данного файла test.txt с содержимым This is a test. Я хочу извлечь подстроку из его содержимого, точнее второго и третьего символа (hi), используя команду

echo ${$(cat test.txt):1:2}

Тем не менее, это выводит второе и третье слово (is a) вместо одиночных символов.

Я могу сделать

a=$(cat test.txt)
echo ${a:1:2}

И это работает, как ожидалось.Но я хочу сделать это одной командой.

Может кто-нибудь объяснить, что здесь происходит, и предложить решение?

Редактировать:

Системаработает zsh.

1 Ответ

0 голосов
/ 27 января 2019

Не могу точно объяснить, что там происходит, но вы можете использовать sed в качестве альтернативы:

sed -E 's/.(..).*/\1/' test.txt

, которая заменяет каждую строку только вторым и третьим символами.

...