Конечно, я нахожу свой ответ сразу после того, как задавать вопрос: facepalm:
кажется, что мне нужно добавить небезопасную
для моего экспорта:
$ cat /etc/exports
/data *(rw,sync,all_squash,no_subtree_check,insecure,anonuid=1000,anongid=1000)
/data/share *(rw,sync,all_squash,no_subtree_check,anonuid=1000,anongid=1000)
Вы можете сделать это:
cat gene_map_table_fb_2014_01_short.tsv |sed '1d' |awk {'print $2'} |awk 'BEGIN{FS=":"} {print $2}' |sed s/._//g
Сначала кошачьте ваш файл, затем удалите первую строку (заголовок столбцов с d1), затем распечатайте все столбцы, затем разделите 4_FBgn0035847
с помощью awk 'BEGIN{FS="}": "}". {print $2}'
Then eliminate number_
with sed s/._//g
Output is:
FBgn0035847
FBgn0032515
FBgn0266486
1FBgn0031359
1FBgn0031359
1FBgn0031359
CR31143
However if your end line is extra and if you want to remove it , you can do it:
cat gene_map_table_fb_2014_01_short.tsv |sed '1d' |awk {'print $2'} |awk 'BEGIN{FS=":"} {print $2}' |sed s/._//g |sed '$d'
So, output is :
FBgn0035847
FBgn0032515
FBgn0266486
1FBgn0031359
1FBgn0031359
1FBgn0031359
AWK
Это создает отделенную вкладку Выход:
$ awk -v OFS="\t" 'NR==FNR{a[$1]=$2;next} FNR==1{print;next} {sub(/intron_/, "", $2); sub(/:.*/,"",$2);if ($2 in a) $2=a[$2];print}' gene_map_table_fb_2014_01_short.tsv HC25_LNv_ZT02_intron_results.txt
bundle_id target_id length eff_length tot_counts uniq_counts est_counts eff_counts ambig_distr_alpha ambig_distr_beta fpkm fpkm_conf_low fpkm_conf_high solvable tpm
1 mthl7 61 0 0 0 0 0 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 F 0.00E+00
2 loqs 72 0 0 0 0 0 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 F 0.00E+00
3 CG45085 58 0 0 0 0 0 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 F 0.00E+00
4 CG18317 4978 1430.739479 91 0 30.333333 105.539363 1.00E+00 1.00E+00 6.30E+00 1.77E+00 1.08E+01 F 1.42E+01
4 CG18317 4978 1430.739479 91 0 30.333333 105.539363 1.00E+00 1.00E+00 6.30E+00 1.77E+00 1.08E+01 F 1.42E+01
4 CG18317 4978 1430.739479 91 0 30.333333 105.539363 1.00E+00 1.00E+00 6.30E+00 1.77E+00 1.08E+01 F 1.42E+01
536 CR31143 40 0 0 0 0 0 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 F 0.00E+00
Объяснение:
ofss = "\ t"
Это делает Выходной полевой сепаратор на вкладку.
NR == FNR {A [1] = $ 2; Далее}
Это создает ассоциативный массив A
, основанный на первом файле в командной строке, с первым столбцом, как ключ и второй столбец в качестве значения. Команда Далее
команда awk
, чтобы пропустить остальные команды и перейти на следующую строку.
Файл отображения содержит несколько строк комментариев. Мы могли бы легко добавить дополнительный , если утверждение
, чтобы они не содержали добавления в массив A
. Однако, поскольку они не вреда, мы пропустили это осложнение.
FNR == 1 {print; следующий}
Это печатает линию заголовка без изменений.
{sub (/ intron_ /, ", $ 2); sub (/:.*/"",$ 2)
Это удаляет пух от второго поля, оставляя за то, что мы хотим только строки.
`Если (2 доллара в а) $ 2 = A [$ 2]
, если строка со второго поля присутствует в качестве ключа в массиве A
, то мы подставляем соответствующее значение.
Печать
Пересмотренная линия напечатана.
Bash
в скрипте, замените
if [ ! -z "$key" ]
с помощью:
if [[ "$key" && "${map[$key]}" ]]
. Что такое сценарий, кажется, нужно знать на данный момент, является ли ключ
карта
или нет. Пересмотренный тест гарантирует не только что ключ
не пусто, но это в карта
.
С этим изменением я получаю вывод:
$ cat temptemp.txt
bundle_id target_id length eff_length tot_counts uniq_counts est_counts eff_counts ambig_distr_alpha ambig_distr_beta fpkm fpkm_conf_low fpkm_conf_high solvable tpm
1 mthl7 61 0 0 0 0 0 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 F 0.00E+00
2 loqs 72 0 0 0 0 0 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 F 0.00E+00
3 CG45085 58 0 0 0 0 0 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 F 0.00E+00
4 CG18317 4978 1430.739479 91 0 30.333333 105.539363 1.00E+00 1.00E+00 6.30E+00 1.77E+00 1.08E+01 F 1.42E+01
4 CG18317 4978 1430.739479 91 0 30.333333 105.539363 1.00E+00 1.00E+00 6.30E+00 1.77E+00 1.08E+01 F 1.42E+01
4 CG18317 4978 1430.739479 91 0 30.333333 105.539363 1.00E+00 1.00E+00 6.30E+00 1.77E+00 1.08E+01 F 1.42E+01
536 CR31143 40 0 0 0 0 0 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 F 0.00E+00
как в сторону текст
,
[! -z «$ Key»]
возвращает true, если ключ
не пусто. Это эквивалентно [-N «$ KEY»]
. Поскольку это такой общий тест, он может быть дополнительно укорочен до [«$ KEY»]
. Это может быть использовано для упрощения нескольких строк в скрипте
.