Декартово произведение слов в строке

1.) sudo lsmod Проверьте и посмотрите, загружен ли модуль (dm_raid)?

2.) sudo dmraid -tay работает любая из этих команд (sudo dmraid -ay) Проверьте массив рейдов? [ ! d1]

3.) gedit /boot/grub/device.map и добавьте

(hd0) /dev/sda
(hd1) /dev/sdb

4.) gedit /etc/fstab комментарий (/dev/mapper/sil_biabadbhagdc1) и (/dev/mapper/sil_biabadbhagdc5) поместите # перед ними line.

Добавьте свой UUID так, вы можете использовать эту команду, чтобы получить свою UUID (sudo blkid)

Mine выглядит так:

# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# /dev/mapper/sil_biabadbhagdc1 
UUID="01331dc5-0c78-49ab-9cf5-655b645110d2 /               ext4    errors=remount-ro 0       1
#/dev/mapper/sil_biabadbhagdc5 
UUID="ea62296d-27ef-4b59-8206-e89d7a31a844 none            swap    sw              0       0
[d6 ] 5.) [F11] и проверьте свои файлы журналов, имейте в виду, что не используйте команду () в этих командах. Я использую raid0 с картой SYAD PCI-X 4 sata II Raid. На плате Tyan с двумя накопителями Seagate 320. Это может работать или не работать для вас. Удачи.

1
задан 18 June 2017 в 01:55

6 ответов

Альтернатива python:

В одном лайнере:

python3 -c "for l in open('f'): d = l.strip().split('|');[print('|'.join([s, d[1]])) for s in d[0].split(',')]"

Где 'f' - путь к вашему файлу, в (одиночных) кавычках.

Выход:

BHARAT|ABCI SELXG|ABCI SAAB|ABCI BHARAT|XYZQ HONEY|XYZQ HIRO|XYZQ ABBS|XYZQ

Или более читаемый:

#!/usr/bin/env python3 import sys # open the file for l in open(sys.argv[1]): # remove spaces from the line(s), split by "|" d = l.strip().split('|') # list the first part of the line, join each of the items with the second part of the line [print('|'.join([s, d[1]])) for s in d[0].split(',')]

Использовать

Скопировать сценарий в пустой файл, сохранить его как reorganize.py Запустите его командой: python3 /path/to/reorganize.py /path/to/file_a

Объяснение:

Сценарий:

Открывает файл, читает его в строке: for l in open(sys.argv[1]): разбивает линию на разделитель |, удаляет конечный \n d = l.strip().split('|') , разделяя первую часть разделителем «,», перечисляя его элементы: d[0].split(',') и соединяя каждый из элементов с последней частью строки : print('|'.join([s, d[1]])): [print('|'.join([s, d[1]])) for s in d[0].split(',')]
1
ответ дан 18 July 2018 в 11:30

Это может быть достигнуто многими способами. Вот один из них, используя awk

cat a | awk -F"[,|]" '{for (i=1;i<NF;i++) print $i"|"$NF}'

В терминале

$ cat a BHARAT,SELXG,SAAB|ABCI BHARAT,HONEY,HIRO,ABBS|XYZQ $ cat a | awk -F"[,|]" '{for (i=1;i<NF;i++) print $i"|"$NF}' BHARAT|ABCI SELXG|ABCI SAAB|ABCI BHARAT|XYZQ HONEY|XYZQ HIRO|XYZQ ABBS|XYZQ

В терминале

Считывает линии с параметрами , и | в качестве разделителя. Печать каждого столбца в строке, за которой следует последний столбец в этой строке с | в качестве разделителя.
2
ответ дан 18 July 2018 в 11:30

Поскольку вы отметили свой вопрос perl, вот несколько способов сделать это на этом языке:

split и join $ perl -F'\|' -alne 'print join "|", $_, $F[1] for split ",", $F[0]' a BHARAT|ABCI SELXG|ABCI SAAB|ABCI BHARAT|XYZQ HONEY|XYZQ HIRO|XYZQ ABBS|XYZQ split и map $ perl -F'\|' -alne 'print for map { "$_|$F[1]" } split ",", $F[0]' a BHARAT|ABCI SELXG|ABCI SAAB|ABCI BHARAT|XYZQ HONEY|XYZQ HIRO|XYZQ ABBS|XYZQ
4
ответ дан 18 July 2018 в 11:30

Альтернатива python:

В одном лайнере:

python3 -c "for l in open('f'): d = l.strip().split('|');[print('|'.join([s, d[1]])) for s in d[0].split(',')]"

Где 'f' - путь к вашему файлу, в (одиночных) кавычках.

Выход:

BHARAT|ABCI SELXG|ABCI SAAB|ABCI BHARAT|XYZQ HONEY|XYZQ HIRO|XYZQ ABBS|XYZQ

Или более читаемый:

#!/usr/bin/env python3 import sys # open the file for l in open(sys.argv[1]): # remove spaces from the line(s), split by "|" d = l.strip().split('|') # list the first part of the line, join each of the items with the second part of the line [print('|'.join([s, d[1]])) for s in d[0].split(',')]

Использовать

Скопировать сценарий в пустой файл, сохранить его как reorganize.py Запустите его командой: python3 /path/to/reorganize.py /path/to/file_a

Объяснение:

Сценарий:

Открывает файл, читает его в строке: for l in open(sys.argv[1]): разбивает линию на разделитель |, удаляет конечный \n d = l.strip().split('|') , разделяя первую часть разделителем «,», перечисляя его элементы: d[0].split(',') и соединяя каждый из элементов с последней частью строки : print('|'.join([s, d[1]])): [print('|'.join([s, d[1]])) for s in d[0].split(',')]
1
ответ дан 24 July 2018 в 19:48

Это может быть достигнуто многими способами. Вот один из них, используя awk

cat a | awk -F"[,|]" '{for (i=1;i<NF;i++) print $i"|"$NF}'

В терминале

$ cat a BHARAT,SELXG,SAAB|ABCI BHARAT,HONEY,HIRO,ABBS|XYZQ $ cat a | awk -F"[,|]" '{for (i=1;i<NF;i++) print $i"|"$NF}' BHARAT|ABCI SELXG|ABCI SAAB|ABCI BHARAT|XYZQ HONEY|XYZQ HIRO|XYZQ ABBS|XYZQ

В терминале

Считывает линии с параметрами , и | в качестве разделителя. Печать каждого столбца в строке, за которой следует последний столбец в этой строке с | в качестве разделителя.
2
ответ дан 24 July 2018 в 19:48
  • 1
    Спасибо, что поделились этим кодом. Однако он не возвращает никакого вывода. – Vishwa Ranjan 17 June 2017 в 14:34
  • 2
    @VishwaRanjan жаль это знать. Я тестировал его перед публикацией, он работает. Он должен работать и на вас. Могут быть и другие проблемы. Я думаю, что ваша работа была выполнена в других ответах, если вы все еще думаете, что вам следует разобраться, почему это не сработало для вас, сначала проверьте, установлен ли вы gawk. не стесняйтесь отвечать, мы можем найти причину. – souravc 19 June 2017 в 08:35

Поскольку вы отметили свой вопрос perl, вот несколько способов сделать это на этом языке:

split и join $ perl -F'\|' -alne 'print join "|", $_, $F[1] for split ",", $F[0]' a BHARAT|ABCI SELXG|ABCI SAAB|ABCI BHARAT|XYZQ HONEY|XYZQ HIRO|XYZQ ABBS|XYZQ split и map $ perl -F'\|' -alne 'print for map { "$_|$F[1]" } split ",", $F[0]' a BHARAT|ABCI SELXG|ABCI SAAB|ABCI BHARAT|XYZQ HONEY|XYZQ HIRO|XYZQ ABBS|XYZQ
4
ответ дан 24 July 2018 в 19:48
  • 1
    Большой!! получил результат, как ожидалось ... Спасибо !!! – Vishwa Ranjan 17 June 2017 в 15:39

Другие вопросы по тегам:

Похожие вопросы: