Я знаю, что оригинал сообщения просил о sed или awk, но если вы хотите удалить "и; только из пятого столбца я бы использовал regex и php. Возможно, есть способ сделать это в AWK, но я люблю использовать самые простые инструменты.
<?php
foreach(file($argv[1]) as $line){
$matches = array();
preg_match('/^(\w+)\s+(\d+)\s+(\d+)\s+(\-|\+)\s+"(\w+.\d)"\;/',$line,$matches);
$matched_line = array_shift($matches); // remove the first element
vprintf("%s\t%s\t%s\t%s\t%s\n",$matches);
}
это будет выводить
$ php /tmp/preg_replace.php /tmp/data
chr1 134901 139379 - ENSG00000237683.5
chr1 860260 879955 + ENSG00000187634.6
chr1 861264 866445 - ENSG00000268179.1
chr1 879584 894689 - ENSG00000188976.6
chr1 895967 901095 + ENSG00000187961.9
-121--57795- Вы должны будете использовать эхо
, чтобы передать $ i
в неловкое состояние. В противном случае он ищет файл.
A=$(echo $i | awk -F_ '{print $1}')
Совпадает с B
-121--160820-Я подтверждаю, что это проблема в fstab. Если вы зайдете внутрь fstab и удалите последнюю строку, которую вы сделали, как раньше, и система запустится. У меня проблема с автоматическим доступом в VirtureBox 5/debian 8. Нет проблем в Virtualbox 4/debian 7
Таким образом, вы получаете вывод в формате США (, когда для LC _ALL установлено значение по умолчанию ), или вы получаете его в английском варианте.
Обратите внимание, что странный порядок в формате даты, используемый жителями США, используется также в очень немногих других странах... и определенно не в Англии
Поэтому, если вам нужен одинаковый вывод в обеих системах, установите одинаковую локаль в обеих системах или используйте явный формат даты:
date '+%a %b %e %T %Z %Y'
В этом примере используется формат даты, который используется по умолчанию для локали C.