Запуск цикла из второй строки файла в сценарии bash

Я не думаю, что вы можете добавить маршрут, потому что ваша сеть не имеет представления о достижении сети 192.168.1.*. Вам нужно настроить маршрутизатор на ПК B, который принимает пакеты из 10.0. . сети к сети 192.168.1.*. А затем вам нужно оставить ПК B в качестве шлюза по умолчанию, что должно решить вашу проблему.

1
28.02.2019, 10:55
5 ответов

Это может быть так просто, как показано ниже:

{ read -r; while read -r line; do echo "$line"; done; } < abc.txt

Здесь {означает группировать команду. Используя read -r, мы пропустим первую строку!

4
27.01.2020, 23:41

Предположим, что файлы, содержащие ваши идентификаторы, находятся в том же каталоге, что и этот скрипт,это должно работать:

#!/bin/bash
content=$(tail -n +2 abc.txt)
for line in $content; do
        echo "$line"
done

Выход:

27
27
27
27
23
-1
27.01.2020, 23:41

Не рекомендуется, если файл большой

Вы можете использовать как:

 for i in $(sed -e '1d' abc.txt)
 do
   something
 done
-1
27.01.2020, 23:41

Вы можете отфильтровать его с помощью sedперед проком.

например, вместо cat abc.txtможно sed 1d abc.txtудалить первую строку.

0
27.01.2020, 23:41

Это работает, -даже если заголовок находится не в первой строке или есть пустая строка:

awk '!/^(id| *)$/{print$0}' file | while read line; do
    something $line
done

В этом примере я использовал while, потому что это часто предпочтительнее, чем for.

Сказано -вот твоя forпетля:

for line in $(awk '!/^id$/{print$0}' file); do
    something $line
done
0
27.01.2020, 23:41

Теги

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