awk
, вероятно, лучший инструмент для работы. Простое решение, похожее на уже данное, но который на самом деле использует указанные вами параметры, это:
awk '$1=="chr4" && $2>=3 && $2<=7'
Вы можете предпочесть более общее решение, который включает в себя размещение команды awk
в сценарии оболочки,:
#!/bin/sh
if [ "$#" -lt 3 ]
then
echo "Usage: $0 chromosome low_position high_position"
exit 1
fi
chr="$1"
lo="$2"
hi="$3"
shift 3
awk -vchromo="$chr" -vpos1="$lo" -v pos2="$hi" '$1==chromo && $2>=pos1 && $2<=pos2' "$@"
При запуске с менее чем тремя аргументами это напоминает вам, какими должны быть аргументы, и завершает работу. В противном случае он сохраняет первые три аргумента в переменных оболочки, а затем убирает их из списка аргументов. Затем он вызывает awk
, передавая значения переменных оболочки как переменные awk
.
Вы можете вызвать это любым из следующих способов::
./myscript chr4 3 7 data
или
./myscript chr4 3 7 < data
или
(some_other_process) |./myscript chr4 3 7и, в любом случае, перенаправить вывод в новый файл с помощью
>
. Вам нужно создать файл конфигурации для вашего интерфейса veth0 и поместить его в /etc/sysconfig/network-scripts/ifcfg-veth0:
DEVICE="veth0"
TYPE="veth"
DEVICETYPE="Ethernet"
BOOTPROTO="static"
IPADDR="10.1.0.1"
NETMASK="255.255.255.0"
ONBOOT="yes"
NM_CONTROLLED="no"
Вам также необходимо скопировать эти скрипты и поместить их в
/etc/sysconfig/network-scripts/
каталог в вашей системе :Образцы:
Вероятно, самое простое решение — добавить необходимые команды в /etc/rc.d/rc.local
. Это будет выполнено при загрузке системы (модулем rc-local.service
systemd ).
/etc/rc.d/rc.local
, если он еще не существует. ip
.