Запустите скрипт следующим образом:
$ sudo bash /home/amal/netbeans-7.3-javaee-linux.sh
Этот сценарий выполнит и установит netbeans.
awk -F'.' '{print $1}' file
-F
Опция Измените параметр портирования по умолчанию ( пространство) до dot (.).
$ 1
- это индекс поля поля (с. Полевой сепаратор).
{ILMN_1343291 TGTGTTGAGAGCTTCTCAGACTATCCACCTTTGGGTCGCTTTGCTGTTCG NM_001402}.{5}
^^ field index is $1 ^^$2
rev file | awk -F'.' '{print $2}'|rev # reverse characters of each lines,\
print field number 2 with (.) separator \
and reverse the result again
Утилита Rev
копирует указанные файлы на стандартное вывод, обратный порядок символов в каждой строке. Если файлы не указаны, стандартный вход прочитан.
sed 's/.[0-9]*$//' file
sed 's/.[^.]*$//' file
$
указывают на конец строки. В первом SED команда поиска CHAR (.), Которые за которыми следует ноль или более вхождений чисел и заменить их пробелом.
Во втором Sed Command Удалите все, что следует (.), А также удалите точку (.).
rev file| sed 's/.*[.]//' |rev
Удалите все перед точкой (.) Также включайте и удалите. сам.
grep -oP '.*(?=\.[0-9])' file
-o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line. -P, --perl-regexp Interpret PATTERN as a Perl compatible regular expression (PCRE)
(? = Pattern)
: Положительный поиск: Положительный lookaead Construct - это пара скобок, причем открывающиеся скобки с последующим знаком вопросительного знака и знаком вопроса.
. * (? = \. [0-9])
: (Положительный lookahead) соответствует всем (. *
), за которым следует одна точка (.) И любые случаи чисел, без Создание шаблона ( \. [0-9]
) Часть матча.
rev file |grep -oP '(?<=[0-9]\.).*' |rev
rev file |grep -oP '[0-9]\.\K.*' |rev
(? <= Pattern)
: Позитивный взгляд. Пара скобок, с отверстием с круглым скобками, за которым следует знак вопроса, «меньше, чем« символ », а также знак равенства.
(? <= [0-9] \.). *
(положительный взгляд) соответствует всему, которое сопровождалось любыми вхождениями чисел и заканчивается точкой (.).
Во второй команде GREP вы можете использовать Nifty \ k
вместо утверждения о всей связи.
cut -f1 -d. file
cut -c 1-77 file # Print first 77 characters of each line.
cut - remove sections from each line of files -d, --delimiter=DELIM use DELIM instead of TAB for field delimiter -f, --fields=LIST select only these fields; -c, --characters=LIST select only these characters
while read line; do echo "${line::-2}";done <file
Это будет работать, если у вас есть только номер с длиной = 1 в конце каждой строки, и они имеют длину. Приведенная выше команда удалить последние два символа в конце каждой строки в входном файле. Альтернативные команды $ {Line% ??}
.
Использование awk
Это просто, просто установите свой сепаратор поля в виде .
:
awk -F. '{print $1}' file
Другой подход, используя оболочку (в данном случае Bash):
while IFS=.; read -r lines _; do line+=("$lines"); done <file
printf "%s\n" "${line[@]}"
ILMN_1343291 TGTGTTGAGAGCTTCTCAGACTATCCACCTTTGGGTCGCTTTGCTGTTCG NM_001402
ILMN_1343295 CTTCAACAGCGACACCCACTCCTCCACCTTTGACGCTGGGGCTGGCATTG NM_002046
ILMN_1651209 TCACGGCGTACGCCCTCATGGGGAAAATCTCCCCGGTGACTTTCAGGTCC NM_182838
Если предположить, что расширения все-разрядные:
perl -pi -e 's/\.\d+$//' /path/to/file
-i
выполняет редактирование на месте (как в sed
). \d
означает цифры, а $
означает конец строки.
С помощью awk
:
awk 'gsub(/\.[0-9]+$/,"")' /path/to/file
gawk
имеет возможность редактирования на месте в более новых версиях, но я не уверен, насколько это портативно. gsub
поддерживает опциональный параметр, задающий целевой столбец:
awk 'gsub(/\.[0-9]+$/,"",$3)' /path/to/file
Последняя форма имеет нежелательный побочный эффект разделения каждого столбца на один пробел в его выводе, как если бы вы сделали печать $1,...,$NF
. Я не знаю почему.
С помощью sed
можно сделать:
sed 's/\.[0-9][0-9]*$//' x.txt
Предположим, что имя файла x.txt
. Если вы хотите изменить файл в строке, используйте переключатель -i
на sed
как показано ниже:
sed -i 's/\.[0-9][0-9]*$//' x.txt
Если вы хотите сохранить содержимое оригинального файла, используйте переадресацию как показано ниже:
sed 's/\.[0-9][0-9]*$//' x.txt > newfile.txt