Основной поток / седь?скрипт bash, выполнять подстроку в каждой строке - PullRequest
2 голосов
/ 01 декабря 2011

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

Если у меня есть файл:

ABCY uuuu
UNUY uuuu

...

Я хочу получить:

uuuu
uuuu
....

В идеале подстрока

{5} должна обнаружить символ 5 и выдать

Ответы [ 3 ]

7 голосов
/ 01 декабря 2011

Вам не нужно sed:

cut -c5-9 yourfile
1 голос
/ 01 декабря 2011

Было бы проще использовать cut или awk.Предполагая, что ваши поля разделены пробелом и вам нужно второе поле, вы можете использовать:

cut -d' ' -f2 file.txt

awk '{print $2}' file.txt

Вы также можете использовать cut и awk для извлечения подстрок:

cut -c6- file.txt
awk '{print substr($0,6);}'  file.txt

Однако, если вы действительно хотите перебрать файл и извлечь подстроки, вы можете использовать цикл while:

while IFS= read -r line
do
    echo ${line:5}
done < file.txt
0 голосов
/ 02 декабря 2011

если вы действительно любите sed, вы можете попробовать:

sed -r 's/^.{5}//' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...