Если вы хотите добавить одну и ту же текстовую строку в конце строки для сценарии (символы для поиска: 'X' 'Y'), то вы можете сделать это следующим образом:
sed -e 's/[XY].*/&__ADDEDTEXT__/' yourfile
С другой стороны, если вы хотите, чтобы отдельные тексты помещались в конце строк в зависимости от символа, вы можете сделать :
sed -e '
/X/s/$/__TEXT1__/; t
/Y/s/$/__TEXT2__/
' yourfile
Где мы используем команду t
(читается как тест), чтобы определить, была ли предыдущая команда s///
успешной, и перейти к концу кода sed на настоящая линия. Также обратите внимание на синтаксис: /regex/s/// => если строка содержит регулярное выражение, выполните замену в строке.
попробуй
awk '$1 !~ /_/' input_file.txt > output.txt
будут выбраны все строки, в которых$1
(первый столбец )не содержит_
или, согласно предложению Гленна Джекмана
awk '! index($1,"_") ' input_file.txt > output.txt
другой способ может быть
sed -i -e '/^chr[0-9]*_/d' file.txt
это удалит ту же строку. (при условии, что строка начинается точно сchr
)
sed '/_/d' file
удалит все строки, в которых присутствует подчеркивание в любом месте строки .
Если вам нужно сохранить результаты обратно в файл, используйтеsed -i...
Чтобы ограничиться первым столбцом:
sed '/^[[:blank:]]*[^[:blank:]]\+_/d' file
То есть :в начале строки, возможно начальные пробелы,за которыми следуют символы пробела, отличные от -, и символ подчеркивания.