LINUX.ORG.RU

Сообщения sspphheerraa

 

sort и буква ё

Форум — Development

Доброго времени суток.
Есть файл с русскими словами (с присутствием буквы ё).

костёр
мама
абрикос
ёжик
коричневый
пламя
ездить
кость

Надо отсортировать слова в алфавитном порядке. В данном случае sort делает следующее:
абрикос
ездить
коричневый
кость
костёр
мама
пламя
ёжик

Хотя слово «кость» должно быть после слова «костёр», а слово «ёжик» должно быть перед словом «коричневый».

Чем можно отсортировать в правильном порядке русского алфавита?

 

sspphheerraa
()

Видеозахват v4l2, Gstreamer и ошибка после просыпания

Форум — General

Добого времени суток.
Ноут с gentoo на борту используется для записи видео с аналогового источника (захват через тюнер saa7134), звук - со встроенного микрофона.
Скрипт, который запускает захват видео:

#!/usr/bin/env bash

filename=$(date +"%F_%H-%M-%S")
VIDEO_DEVICE="/dev/video0"
VIDEO_CAPABILITIES="video/x-raw, format=UYVY, interlace-mode=interleaved, framerate=25/1, width=720, height=576"
TV_NORM="PAL"
AUDIO_DEVICE="hw:0"
AUDIO_CAPABILITIES="audio/x-raw, rate=44100, channels=2"
ENCODE_VIDEO_CODEC="mpeg2video"
ENCODE_VIDEO_OPTIONS="-qscale:v 2 -aspect 4:3 -flags +ilme+ildct -top 1"
ENCODE_AUDIO_CODEC="aac"
AUDIO_FILTER=""
VIDEO_FILTER=""
ENCODE_AUDIO_OPTIONS="-ac 1"
ENCODE_MUXER_FORMAT="mpegts"
ENCODE_MUXER_OPTIONS=""

v4l2-ctl --list-inputs
v4l2-ctl --set-input=2
v4l2-ctl --device="$VIDEO_DEVICE" --get-fmt-video

ffmpeg \
    -i <(
        gst-launch-1.0 -q \
            v4l2src device="$VIDEO_DEVICE" do-timestamp=true norm="$TV_NORM" pixel-aspect-ratio=1 \
                ! $VIDEO_CAPABILITIES \
                ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \
                ! mux. \
            alsasrc device="$AUDIO_DEVICE" do-timestamp=true \
                ! $AUDIO_CAPABILITIES \
                ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \
                ! mux. \
            matroskamux name=mux \
                ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \
                ! fdsink fd=1
    ) \
		-c:v $ENCODE_VIDEO_CODEC $ENCODE_VIDEO_OPTIONS \
		-c:a $ENCODE_AUDIO_CODEC $ENCODE_AUDIO_OPTIONS \
		-f $ENCODE_MUXER_FORMAT $ENCODE_MUXER_OPTIONS \
		-map 0:v \
		-map 0:a \
		/home/john/Video/$filename.ts

После очередного выхода из спящего режима видеозахват работать перестал.
Сам тюнер работает - «ffplay -i /dev/video0» картинку показывает. Скипт ругается на 24 строку - gst-launch-1.0 Bus error.
$ ./svideo-mpeg2.sh
ioctl: VIDIOC_ENUMINPUT
        Input       : 0
        Name        : Television
        Type        : 0x00000001 (Tuner)
        Audioset    : 0x00000000
        Tuner       : 0x00000000
        Standard    : 0x0000000000FFBFFF (PAL-B/B1/G/H/I/D/D1/K/M/N/Nc/60 NTSC-M/M-JP/M-KR SECAM-B/D/G/H/K/K1/L/Lc)
        Status      : 0x00000000 (ok)
        Capabilities: 0x00000004 (SDTV standards)

        Input       : 1
        Name        : Composite1
        Type        : 0x00000002 (Camera)
        Audioset    : 0x00000000
        Tuner       : 0x00000000
        Standard    : 0x0000000000FFBFFF (PAL-B/B1/G/H/I/D/D1/K/M/N/Nc/60 NTSC-M/M-JP/M-KR SECAM-B/D/G/H/K/K1/L/Lc)
        Status      : 0x00000000 (ok)
        Capabilities: 0x00000004 (SDTV standards)

        Input       : 2
        Name        : S-Video
        Type        : 0x00000002 (Camera)
        Audioset    : 0x00000000
        Tuner       : 0x00000000
        Standard    : 0x0000000000FFBFFF (PAL-B/B1/G/H/I/D/D1/K/M/N/Nc/60 NTSC-M/M-JP/M-KR SECAM-B/D/G/H/K/K1/L/Lc)
        Status      : 0x00000102 (no signal, no hsync lock)
        Capabilities: 0x00000004 (SDTV standards)
Video input set to 2 (S-Video: Camera, no signal, no hsync lock)
Format Video Capture:
        Width/Height      : 720/576
        Pixel Format      : 'UYVY' (UYVY 4:2:2)
        Field             : Interlaced
        Bytes per Line    : 1440
        Size Image        : 829440
        Colorspace        : SMPTE 170M
        Transfer Function : Default (maps to Rec. 709)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Limited Range)
        Flags             : 
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3.0 (Gentoo 9.3.0-r2 p4)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-4.3.1/html --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --nm=x86_64-pc-linux-gnu-nm --ranlib=x86_64-pc-linux-gnu-ranlib --pkg-config=x86_64-pc-linux-gnu-pkg-config --optflags='-march=core2 -O2 -pipe' --disable-static --enable-avfilter --enable-avresample --disable-stripping --disable-optimizations --disable-libcelt --enable-nonfree --disable-indev=oss --disable-indev=jack --disable-outdev=oss --enable-version3 --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-gcrypt --enable-gnutls --disable-gmp --enable-gpl --disable-hardcoded-tables --enable-iconv --disable-libtls --disable-libxml2 --disable-lzma --enable-network --disable-opencl --enable-openssl --enable-postproc --disable-libsmbclient --enable-ffplay --enable-sdl2 --disable-vaapi --disable-vdpau --disable-vulkan --enable-xlib --enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes --enable-zlib --disable-libcdio --enable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --enable-opengl --disable-libv4l2 --enable-libpulse --disable-libdrm --disable-libjack --enable-libopencore-amrwb --enable-libopencore-amrnb --disable-libcodec2 --enable-libdav1d --disable-libfdk-aac --disable-libopenjpeg --disable-libbluray --disable-libgme --disable-libgsm --disable-libaribb24 --disable-mmal --disable-libmodplug --enable-libopus --disable-libilbc --disable-librtmp --disable-libssh --disable-libspeex --disable-libsrt --enable-librsvg --disable-ffnvcodec --enable-libvorbis --disable-libvpx --disable-libzvbi --disable-appkit --disable-libbs2b --disable-chromaprint --disable-cuda-llvm --disable-libflite --disable-frei0r --disable-libfribidi --disable-fontconfig --disable-ladspa --disable-libass --disable-libtesseract --disable-lv2 --enable-libfreetype --disable-libvidstab --disable-librubberband --disable-libzmq --disable-libzimg --disable-libsoxr --enable-pthreads --disable-libvo-amrwbenc --enable-libmp3lame --disable-libkvazaar --disable-libaom --disable-libopenh264 --disable-librav1e --disable-libsnappy --enable-libtheora --disable-libtwolame --disable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --disable-gnutls --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-vfpv3 --disable-armv8 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-altivec --disable-vsx --disable-power8 --disable-amd3dnow --disable-amd3dnowext --disable-aesni --disable-avx --disable-avx2 --disable-fma3 --disable-fma4 --disable-sse4 --disable-sse42 --disable-xop --cpu=core2 --disable-doc --disable-htmlpages --enable-manpages
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
./svideo-mpeg2.sh: line 24:  6313 Bus error               gst-launch-1.0 -q v4l2src device="$VIDEO_DEVICE" do-timestamp=true norm="$TV_NORM" pixel-aspect-ratio=1 ! $VIDEO_CAPABILITIES ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! mux. alsasrc device="$AUDIO_DEVICE" do-timestamp=true ! $AUDIO_CAPABILITIES ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! mux. matroskamux name=mux ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! fdsink fd=1
/dev/fd/63: Invalid data found when processing input

Запуск gst-launch-1.0 без аргументов, выдаёт ту же ошибку:
$ gst-launch-1.0
Bus error
$

Гуглил-гуглил, но так и не нашёл ничего проясняющего. Каюсь, совершил неодобримое - запустил скрипт от рута. Запись пошла:
# ./svideo-mpeg2.sh 
ioctl: VIDIOC_ENUMINPUT
        Input       : 0
        Name        : Television
        Type        : 0x00000001 (Tuner)
        Audioset    : 0x00000000
        Tuner       : 0x00000000
        Standard    : 0x0000000000FFBFFF (PAL-B/B1/G/H/I/D/D1/K/M/N/Nc/60 NTSC-M/M-JP/M-KR SECAM-B/D/G/H/K/K1/L/Lc)
        Status      : 0x00000000 (ok)
        Capabilities: 0x00000004 (SDTV standards)

        Input       : 1
        Name        : Composite1
        Type        : 0x00000002 (Camera)
        Audioset    : 0x00000000
        Tuner       : 0x00000000
        Standard    : 0x0000000000FFBFFF (PAL-B/B1/G/H/I/D/D1/K/M/N/Nc/60 NTSC-M/M-JP/M-KR SECAM-B/D/G/H/K/K1/L/Lc)
        Status      : 0x00000000 (ok)
        Capabilities: 0x00000004 (SDTV standards)

        Input       : 2
        Name        : S-Video
        Type        : 0x00000002 (Camera)
        Audioset    : 0x00000000
        Tuner       : 0x00000000
        Standard    : 0x0000000000FFBFFF (PAL-B/B1/G/H/I/D/D1/K/M/N/Nc/60 NTSC-M/M-JP/M-KR SECAM-B/D/G/H/K/K1/L/Lc)
        Status      : 0x00000102 (no signal, no hsync lock)
        Capabilities: 0x00000004 (SDTV standards)
Video input set to 2 (S-Video: Camera, no signal, no hsync lock)
Format Video Capture:
        Width/Height      : 720/576
        Pixel Format      : 'BGR3' (24-bit BGR 8-8-8)
        Field             : Interlaced
        Bytes per Line    : 2160
        Size Image        : 1244160
        Colorspace        : SMPTE 170M
        Transfer Function : Default (maps to Rec. 709)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Full Range)
        Flags             : 
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3.0 (Gentoo 9.3.0-r2 p4)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-4.3.1/html --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --nm=x86_64-pc-linux-gnu-nm --ranlib=x86_64-pc-linux-gnu-ranlib --pkg-config=x86_64-pc-linux-gnu-pkg-config --optflags='-march=core2 -O2 -pipe' --disable-static --enable-avfilter --enable-avresample --disable-stripping --disable-optimizations --disable-libcelt --enable-nonfree --disable-indev=oss --disable-indev=jack --disable-outdev=oss --enable-version3 --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-gcrypt --enable-gnutls --disable-gmp --enable-gpl --disable-hardcoded-tables --enable-iconv --disable-libtls --disable-libxml2 --disable-lzma --enable-network --disable-opencl --enable-openssl --enable-postproc --disable-libsmbclient --enable-ffplay --enable-sdl2 --disable-vaapi --disable-vdpau --disable-vulkan --enable-xlib --enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes --enable-zlib --disable-libcdio --enable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --enable-opengl --disable-libv4l2 --enable-libpulse --disable-libdrm --disable-libjack --enable-libopencore-amrwb --enable-libopencore-amrnb --disable-libcodec2 --enable-libdav1d --disable-libfdk-aac --disable-libopenjpeg --disable-libbluray --disable-libgme --disable-libgsm --disable-libaribb24 --disable-mmal --disable-libmodplug --enable-libopus --disable-libilbc --disable-librtmp --disable-libssh --disable-libspeex --disable-libsrt --enable-librsvg --disable-ffnvcodec --enable-libvorbis --disable-libvpx --disable-libzvbi --disable-appkit --disable-libbs2b --disable-chromaprint --disable-cuda-llvm --disable-libflite --disable-frei0r --disable-libfribidi --disable-fontconfig --disable-ladspa --disable-libass --disable-libtesseract --disable-lv2 --enable-libfreetype --disable-libvidstab --disable-librubberband --disable-libzmq --disable-libzimg --disable-libsoxr --enable-pthreads --disable-libvo-amrwbenc --enable-libmp3lame --disable-libkvazaar --disable-libaom --disable-libopenh264 --disable-librav1e --disable-libsnappy --enable-libtheora --disable-libtwolame --disable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --disable-gnutls --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-vfpv3 --disable-armv8 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-altivec --disable-vsx --disable-power8 --disable-amd3dnow --disable-amd3dnowext --disable-aesni --disable-avx --disable-avx2 --disable-fma3 --disable-fma4 --disable-sse4 --disable-sse42 --disable-xop --cpu=core2 --disable-doc --disable-htmlpages --enable-manpages
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, matroska,webm, from '/dev/fd/63':
  Metadata:
    encoder         : GStreamer matroskamux version 1.16.2
    creation_time   : 2021-01-19T19:12:57.000000Z
  Duration: N/A, start: 0.000000, bitrate: 1411 kb/s
    Stream #0:0(eng): Video: rawvideo (UYVY / 0x59565955), uyvy422(tv, smpte170m/smpte170m/bt709), 720x576, SAR 1:1 DAR 5:4, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      title           : Video
    Stream #0:1(eng): Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s (default)
    Metadata:
      title           : Audio
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native))
  Stream #0:1 -> #0:1 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
Output #0, mpegts, to '/home/john/Video/2021-01-19_21-12-56.ts':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0(eng): Video: mpeg2video (4:2:2), yuv422p(top first), 720x576 [SAR 16:15 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 90k tbn, 25 tbc (default)
    Metadata:
      title           : Video
      encoder         : Lavc58.91.100 mpeg2video
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
    Stream #0:1(eng): Audio: aac (LC), 44100 Hz, mono, fltp, 69 kb/s (default)
    Metadata:
      title           : Audio
      encoder         : Lavc58.91.100 aac
frame=   56 fps= 23 q=2.0 Lsize=     119kB time=00:00:02.43 bitrate= 401.1kbits/s speed=1.01x    
video:79kB audio:21kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 19.197416%
[aac @ 0x55cb1e5e6600] Qavg: 122.734


Такое впечатление, что что-то нарушилось с правами для обычного пользователя.
Прошу помощи.

 , ,

sspphheerraa
()

Удалить дубли внутри полей, разделённых табуляциями

Форум — Development

Доброго времени суток.
Есть файл содержащий строки, каждая строка состоит из полей (слов) разделённых табуляциями. Среди полей есть такие, что соодержат насколько слов (разделены запятыми).

выпить	попил,попил	выпила	попило,попило,попало,попили	попили,попили попью
дойти	дошёл	дошла,дошла	дошло,дышло	дошли

Как удалить слова-дубли внутри каждого поля? Т.е. из примера выше, чтобы получилось так:
выпить	попил	выпила	попило,попало,попили	попили попью
дойти	дошёл	дошла	дошло,дышло	дошли

Спасибо.

 , ,

sspphheerraa
()

dnsmasq не раздаёт адреса в локалку

Форум — Admin

Доброго времени суток.
Комп с Gentoo на борту (назовём его хост), подключен к интернету через роутер (внутренний адрес роутера 192.168.1.1, адрес хоста - 192.168.1.2). На хосте раздаётся локалка, а также стоит несколько гостей в виртуалке (используется qemu, libvirt, virt-manager).

# ifconfig 
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.2  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::6e62:6dff:fe30:d49e  prefixlen 64  scopeid 0x20<link>
        ether 6c:65:6d:3f:d4:9e  txqueuelen 1000  (Ethernet)
        RX packets 142705  bytes 130857217 (124.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 184902  bytes 146156489 (139.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s0u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.0.1  netmask 255.255.255.0  broadcast 172.16.0.255
        inet6 fe80::20a:cdff:fe2e:8603  prefixlen 64  scopeid 0x20<link>
        ether 0f:0a:cd:2e:81:23  txqueuelen 1000  (Ethernet)
        RX packets 12  bytes 1488 (1.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 558  bytes 91182 (89.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 558  bytes 91182 (89.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:e2:7a:00  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 10.0.2.2  netmask 255.255.255.0  broadcast 10.0.2.255
        ether 52:54:00:37:41:09  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 52:54:00:34:43:b5  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr3: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.5.1  netmask 255.255.255.0  broadcast 192.168.5.255
        ether 52:54:00:1c:92:85  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Интерфейс enp2s0 смотрит в интернет (через роутер), enp4s0u1 смотрит в локалку, virbr[0,1,2,3] - виртуальные мосты, обслуживающие гостей в виртуалке.
Конфиг сети:
# cat /etc/conf.d/net
config_enp2s0="dhcp"
config_enp4s0u1="172.16.0.1/24"
modules_enp4s0u1="!ifplugd"

Установлен dnsmasq, задачей которого является обслуживание enp4s0u1
cat /etc/dnsmasq.conf
resolv-file=/etc/resolv.conf
dhcp-host=25:1c:2a:03:e3:41,172.16.0.2,24h
bind-interfaces
except-interface=virbr0
except-interface=virbr1
except-interface=virbr2
except-interface=virbr3

Проблема в том, что адрес 172.16.0.2 не присваиваетя подключаемому проводом ноуту (MAC правильный).
# cat /var/log/everything/current | grep dnsmasq
May 07 19:00:20 [dnsmasq] started, version 2.80 cachesize 150
May 07 19:00:20 [dnsmasq] compile time options: IPv6 GNU-getopt DBus i18n no-IDN DHCP DHCPv6 no-Lua no-TFTP no-conntrack ipset no-auth no-DNSSEC no-ID loop-detect inotify dumpfile
May 07 19:00:20 [dnsmasq] reading /etc/resolv.conf
May 07 19:00:20 [dnsmasq] using nameserver 192.168.1.1#53
May 07 19:00:20 [dnsmasq] read /etc/hosts - 2 addresses

и
# cat /etc/resolv.conf 
# Generated by udhcpc for enp2s0
domain lan
nameserver 192.168.1.1

Подскажите в чём проблема.
Заранее благодарен.

ps Виртуальные мосты работают нормально, настраивались через virt-manager автономно.

 , ,

sspphheerraa
()

Внезапная проблема с жёстким диском

Форум — General

Доброго времени суток.
Жил-был ноут с Gentoo Linux, использовался для видеозахвата через v4l (/dev/video0). Во время очередной записи намертво завис. Помог только hard-reset. При повторном включении - kernel panic.
В ошибках пишется, recuvery required on readonly filesystem, failed command: READ DMA, status: { DRDY ERR }
Полный лог здесь: https://i111.fastpic.ru/thumb/2020/0415/f2/_8b74e8a474de48b15a567c26be15b1f2.jpeg
Загрузился с Gentoo-install флешки - винт видится, boot раздел монтируется, root - нет (can't read superblock on /dev/sda4).
Проблема с файловой системой или на уровне железа?
Можно ли инфу восстановить?

Спасибо.

 , ,

sspphheerraa
()

Корректировка имён файлов - нумерация

Форум — Development

Доброго времени суток. Есть скрипт, запускающий видеозахват с тв-тюнера посредством ffmpeg. Захват, то останавливается, то снова возобновляется. Необходимо, чтобы выходной файл не переписывался, а создовался новый с добавлением номера. Данный скрипт не устраивает тем, что имена файлов идут vid_1.ts vid_2.ts и в некоторых системах сортировка файлов не всегда правильная (после vid_1.ts идёт vid_11.ts и т. д.). Как можно подправить скрипт, чтобы имена файлов были vid_001.ts vid_002.ts и т. д.

#!/usr/bin/env bash

touch /home/john/Video/vid.ts

name=vid
if [[ -e /home/john/Video/$name.ts || -L /home/john/Video/$name.ts ]] ; then
    i=0
    while [[ -e /home/john/Video/$name\_$i.ts || -L /home/john/Video/$name\_$i.ts ]] ; do
        let i++
    done
    name=$name\_$i
fi

rm /home/john/Video/vid.ts

ffmpeg -i /dev/video0 -c:v libx264 -aspect 4:3 -preset ultrafast -flags +ilme+ildct -top 1 -c:a aac -f mpegts /home/john/Video/$name.ts

 , ,

sspphheerraa
()

Bash скрипт для обработки текстового файла

Форум — Development

Доброго времени суток.
Я составляю словарь орфографии для hunspell. На данном этапе я имею файл аффиксов и файл инфинитивов (с флагами). Однако, из-за «издержек производства» в словаре проскакивают дубли, но с разными флагами. Например.

автоинспектор/1,5,15,20,25
автоинспектор/1,5,15,20,29
адрес/1,5,15,20,25
адрес/1,5,15,20,29
амбарище/1,5,15,25
амбарище/1,5,15,27
...

Из этого нужно получить следующее:
автоинспектор/1,5,15,20,25,29
адрес/1,5,15,20,25,29
амбарище/1,5,15,25,27
...

т.е. убрать слова-дубли, но «сложить» флаги

Написал такой скрипт:
#!/bin/bash

input_file="d.txt"
output_file="out.txt"

previous_word="none"
previous_flags_array=()

for line in `cat $input_file` ; do
	IFS="/"
	set -- $line
	current_word=$1
	flags=$2
	IFS=","
	set -- $flags
	current_flags_array=($1 $2 $3 $4 $5)
    if [ $previous_word == "none" ] ; then
		previous_word=$current_word
		previous_flags_array=("${current_flags_array[@]}")
	else
		if [ $previous_word == $current_word ] ; then
			previous_flags_array=("${previous_flags_array[@]}" "${current_flags_array[@]}")
		else
			sorted_final_flags=($(echo "${previous_flags_array[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
			echo "$previous_word"/"${sorted_final_flags[@]}" >> $output_file
			previous_word=$current_word
			previous_flags_array=("${current_flags_array[@]}")
		fi
	fi
done


Есть два вопроса:
1. Скрипт не экспортирует последнее обрабатываемое слово. Как задать, чтобы при достижении EOF также выполнялось:
sorted_final_flags=($(echo "${previous_flags_array[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
echo "$previous_word"/"${sorted_final_flags[@]}" >> $output_file


2. Данный скрипт написан для 5 позиционных параметров (соответственно 5 флагам). Как задать так, чтобы работало и с большим, и с меньшим количеством параметров (флагов)?

 ,

sspphheerraa
()

Скрипт для пакетной обработки текстовых файлов

Форум — Development

Доброго времени суток.
Ранее я уже спрашивал как выровнять текст по левой стороне чередуя запятыми каждый символ. Увы, та тема уже в архиве. Сейчас снова появилась потребность в этом, только теперь длина наидлиннейшей строки в каждом файле разная и её нужно высчитывать отдельно для каждого. Спасибо анонимусу, который в конце предложил такую комманду (и она также работала на равне с другими решениями). А вот сейчас, пробую, а она что-то не работает (просто копирует файл и всё). Приведу её здесь:

awk -v x=$(awk 'm<NF {m=NF} END {print m}' input.txt) '{n=x-NF; gsub("[[:space:]]+", ","); s=""; for (i=0; i<n; i++) {s=s","}; print s$0}' input.txt > output.txt

Что-то изменилось в интерпретаторе?

 ,

sspphheerraa
()

Удалить строки с повторяющимися словами?

Форум — Development

Доброго времени суток.
Есть файл со словами, которые склоняются по падежам (формат: одна строка - одно слово; словоформы (склонения) разделены друг от друга табуляциями).
Есть в списке также слова, которые не склоняются, т. е. во всех «ячейках» словоформ находятся одинаковые слова.
Нужно найти такие слова (строки их содержащие) и удалить.
Чем можно такое сделать?

 ,

sspphheerraa
()

Удалить уникальные строки из файла (или сохранить повторяющиеся)?

Форум — Development

Доброго времени суток.
Есть файл со словами (неск. тысяч), по одному слову в строке. Есть информация, что некоторые слова (а соответственно строки) дублируются, возможно, даже несколько раз.
Нужно выделить и сохранить отдельно эти самые повторяющиеся слова.

Можно ли это как-то сделать с помощью sed, awk... ?
Спасибо.

 ,

sspphheerraa
()

NetworkManager, автоматическое поднятие соединения при отключенном кабеле

Форум — Admin

Доброго времени суток!
В продолжении темы о прозрачном Tor прокси на шлюзе.
Всё работает прекрасно, пока кабель от шлюза к клиенту подключён. Недавно обнаружил, что если в момент загрузки шлюза этот кабель не подключен, то соединение не поднимается автоматически (хотя при том же отключенном кабеле прекрасно поднимается в ручную):

localhost # nmcli device status
DEVICE     TYPE      STATE        CONNECTION 
eth0  ethernet  connected    INTERNET   
eth1  ethernet  unavailable  --         
lo  loopback  unmanaged    --         
localhost # nmcli connection up LAN
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
localhost # nmcli device status
DEVICE     TYPE      STATE        CONNECTION 
eth0  ethernet  connected  INTERNET   
eth1  ethernet  connected  LAN
lo  loopback  unmanaged    --         
localhost #

Проблема в том, что при отсутствии LAN соединения не запускается Tor при старте системы, и как следствие не работает резолв для заблокированных сайтов:
 * Starting NetworkManager ...
 * Marking NetworkManager as inactive. It will automatically be marked
 * as started after a network connection has been established.
 * WARNING: NetworkManager has started, but is inactive
 * WARNING: dnsmasq will start when NetworkManager has started
 * /var/run/tor: correcting owner
 * Starting tor ...
May 28 09:49:17.709 [warn] Could not bind to 192.168.10.1:9040: Cannot assign requested address
May 28 09:49:17.712 [warn] Failed to parse/validate config: Failed to bind one of the listener ports.
May 28 09:49:17.714 [err] Reading config failed--see warnings above.
 * start-stop-daemon: failed to start `/usr/bin/tor'
 * Failed to start tor

В общем ситуация не критичная, но всё же хотелось бы задать, чтоб LAN (внутренний интерфейс шлюза, 192.168.10.1) поднимался автоматом, независимо от того подсоединён кабель или нет. Это можно как-то сделать?

 

sspphheerraa
()

Доступ к заблокированному сайту

Форум — Admin

Доброго времени суток.
Помогите советом. Есть несколько сайтов, заблокированных провайдером. Инет получает машина-шлюз с Gentoo, которая далее раздаёт его всем остальным (ноутбук, планшет, сматфон). Задача состоит в том, чтобы запросы к заблокированному сайту резолвились в Tor прозрачно для всех подключающихся.
На шлюзе стоит nftables, tor, dnsmasq.
Достаточно ли будет перенаправления в Tor на уровне nftables? Как обеспечить резолв DNS запросов в этом случае?

ps Анонимность не преследуется.

 , ,

sspphheerraa
()

Virt-manager, Qemu, нет звука из гостевой VM

Форум — Admin

Доброго времени суток.
Host-система Gentoo Linux, KDE. Настраиваю Windows XP в качестве гостевой ОС в Qemu. Опции задавал через GUI Virt-manager'а. Конфиг XML - https://bpaste.net/show/ce2db0251dc7
Работает всё, кроме звука (его нет), хотя Windows XP звуковую карту (ac97) успешно опознал, и даже драйверов не потребовал.
В логах пишется следующее: https://bpaste.net/show/162e031910ca

Если запускать машину напрямую через Qemu:

$ export QEMU_AUDIO_DRV=alsa 
$ qemu-system-x86_64 -drive file=VM.img -m 1G -vga qxl -netdev user,id=vmnic -device rtl8139,netdev=vmnic -usbdevice tablet -soundhw ac97 
то звук есть, хотя и с искажениями (треск). Да и тормоза сильные.
Если не менять переменную QEMU_AUDIO_DRV (значение по-умолчанию 'spice'), то звука также нет.

В host-системе звук в KDE выводится через gstreamer (но пробовал и vlc).
Пакеты сораны так:
localhost # emerge -pv qemu virt-manager libvirt spice-gtk phonon

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] app-emulation/qemu-2.4.1-r2::gentoo  USE="aio alsa caps curl fdt filecaps jpeg ncurses nls opengl pin-upstream-blobs png sdl sdl2 seccomp spice threads usb usbredir uuid vhost-net vnc xattr -accessibility -bluetooth -debug (-glusterfs) -gtk -gtk2 -infiniband -iscsi -lzo -nfs -numa -pulseaudio -python -rbd -sasl (-selinux) -smartcard -snappy -ssh -static -static-softmmu -static-user -systemtap -tci {-test} -tls -vde -virtfs -vte -xen -xfs" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64 -aarch64 -alpha -arm -cris -lm32 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -moxie -or32 -ppc -ppc64 -ppcemb -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -unicore32 -xtensa -xtensaeb" QEMU_USER_TARGETS="i386 x86_64 -aarch64 -alpha -arm -armeb -cris -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -or32 -ppc -ppc64 -ppc64abi32 -ppc64le -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -unicore32" 0 KiB
[ebuild   R    ] net-misc/spice-gtk-0.30-r1::gentoo  USE="gstreamer gtk3 introspection python usbredir -dbus -lz4 -policykit -pulseaudio -sasl -smartcard -static-libs -vala -webdav" PYTHON_SINGLE_TARGET="python2_7 -python3_4" PYTHON_TARGETS="python2_7 python3_4" 0 KiB
[ebuild   R    ] media-libs/phonon-4.7.2::gentoo  USE="gstreamer qt4 vlc (-aqua) -debug -designer -pulseaudio -qt5 (-zeitgeist)" 0 KiB
[ebuild   R    ] app-emulation/virt-manager-1.1.0-r2::gentoo  USE="gtk -debug -gnome-keyring -policykit -sasl" PYTHON_TARGETS="python2_7" 0 KiB
[ebuild   R    ] app-emulation/libvirt-1.2.18-r1:0/1.2.18::gentoo  USE="caps libvirtd macvtap nls qemu udev vepa virt-network (-apparmor) -audit -avahi -firewalld -fuse (-glusterfs) -iscsi -lvm -lxc -nfs -numa -openvz -parted -pcap -phyp -policykit -rbd -sasl (-selinux) -systemd -uml -virtualbox (-wireshark-plugins) -xen" 0 KiB

Total: 5 packages (5 reinstalls), Size of downloads: 0 KiB
localhost #

Хотелось бы всё-таки настроить звук через 'spice'.
Кто что может посоветовать?

 , ,

sspphheerraa
()

Ошибка с функцией sort в C++

Форум — Development

Доброго времени суток.
Изучаю C++ по книге «Stroustrup Bjarne - Programming- Principles and Practice using C++, 2nd». Дошёл до векторов, в книге приводится пример с температурами
http://i.piccy.info/i9/105309d932f37898357ae68de01a693e/1438001476/146931/895...

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
  vector <double> temps;
  for(double temp; cin >> temp;)
    temps.push_back(temp);
  double sum = 0;
  for(int x : temps)
    sum += x;
  cout << "Average temperature: " << sum / temps.size() << '\n';
  sort(temps);
  cout << "Median temperature: " << temps[temps.size() / 2] << '\n';
return 0;
}

Пробую скомпилировать, выпадает ошибка:
https://bpaste.net/show/18e70b20bd20
Если убрать '-std=c++11' то тогда ругается на 'range-based «for» loops are not allowed in C++98 mode'
В чём проблема?

ps Дальше идут упражнения, основывающиеся на данном примере. А я не могу понять, почему не работает пример, то ли я где-то допустил ошибку, то ли проблема с компилятором.
Использую gcc-4.8.4, Gentoo Linux.

 , ,

sspphheerraa
()

Регулярное выражение в условии hunspell

Форум — Development

Доброго времени суток!
Составляю словарь (файл аффиксов) для hunspell. Коротко синтаксис (склонение слов «вой», «ездовой» и «боевой» в родительный падеж):

SFX A й я вой #вой --> воя
SFX A й го [ео]вой #ездовой --> ездового; боевой --> боевого
«SFX» - суффикс (т.е. манипуляции производить с концом слова), «A» - название суффикса, «й» - то, что нужно отбросить, «я» - то что нужно добавить, «вой» (до решётки комментария) - условие, которое должно быть удовлетворено до начала «отбрасывания»/«добавления». Синтаксис поля «условие», судя по докам и различным примерам, представляет собой регулярное выражение. Т.е. в квадратных скобках перечисляются допускаемые символы для данной позиции (если внутри первым будет ^ то - наоборот, недопускаемые символы), точка означает любой смвол и т.д.
Слово «вой» склоняется только по первому правилу, т.к. состоит только из 3-х символов (как в условии первого правила). Условию второго правила «вой» не удовлетворяет, т.к. условие состоит из 4-х символов. А вот слова «ездовой» и «боевой» удовлетворяют обоим правилам. Хотя не нужно, чтобы они склонялись по первому.
Теперь собственно, вопрос. Можно ли как-то, используя метасимволы (или ещё что), указать в условии первого правила, что перед буквой «в» не должно быть вообще никакого символа как такового, чтоб по нему не склонялись «ездовой» и «боевой»?

 

sspphheerraa
()

Срезать окончания слов где нужно и сохранить

Форум — Development

Всем Доброго времени суток!

Есть файл со словами, word.txt, (слова написаны в столбик, по 1 слову на строке). Есть файл numbers.txt, содержащий числа (разные, в диапазоне от 1 до 23, тоже по одному числу на строку). Количество слов/строк в words.txt соответствует таковому в numbers.txt. Необходимо у слов в words.txt обрезать окончания, по принципу «число из numbers.txt показывает число букв, которое должно остаться после обрезания». Также нужно отдельно сохранить слова, в которых обрезания не потребовалось (число из numbers равно числу букв слова). Файлы имеют около 100тыс. строк.

Как составить файл паттернов для sed?

 ,

sspphheerraa
()

Уравнять количество символов в строках текстового файла и выровнять содержимое

Форум — Development

Всем Привет! Появилась специфическая задача по форматировке текста. Содержимое текстового файла следующее:

1	3	4	5	6
1	2
1	2	3
1	2	3	4	5	6	7
Символы (цифры) разделены табуляциями. Необходимо получить:
    1	3	4	5	6
     					1	2
  			  	1	2	3
1	2	3	4	5	6	7
Указанное выранивание необходимо сделать путём добавления табуляций в начало строк. Таким образом, чтобы в каждой строке было одинаковое количество символов. Попробовал выравнивание по правому краю путём:
sed -e :a -e 's/^.\{1,78\}$/\
&/;ta' 3 > 4
получил кучу пустых строк наряду с неразделёнными символами. Нужна ваша помощь, многоуважаемый All.

ps Такое выравнивание необходимо для правильного импорта данного текста в LibreCalc. Чтоб получить это: http://piccy.info/view3/8034849/31454d54e3e4577ac5567b63ea0a52e1/

 ,

sspphheerraa
()

Отобрать строки, где «Ё» есть во всех полях

Форум — Development

Доброго времени суток.
Есть файл вида

АвиасъЁмка;АвиасъЁмка;АвиасъЁмки;АвиасъЁмке;АвиасъЁмку;АвиасъЁмкой,АвиасъЁмкою;АвиасъЁмке;АвиасъЁмки;АвиасъЁмок;АвиасъЁмкам;АвиасъЁмки;АвиасъЁмками;АвиасъЁмках
АвтоподъЁмник;АвтоподъЁмник;АвтоподъЁмника;АвтоподъЁмнику;АвтоподъЁмник;АвтоподъЁмником;АвтоподъЁмнике;АвтоподъЁмники;АвтоподъЁмников;АвтоподъЁмникам;АвтоподъЁмники;АвтоподъЁмниками;АвтоподъЁмниках
Адрес-календАрь;Адрес-календАрь;Адрес-календарЯ;Адрес-календарЮ;Адрес-календАрь;Адрес-календарЁм;Адрес-календарЕ;Адрес-календарИ;Адрес-календарЕй;Адрес-календарЯм;Адрес-календарИ;Адрес-календарЯми;Адрес-календарЯх
аистЁнок;аистЁнок;аистЁнка;аистЁнку;аистЁнка;аистЁнком;аистЁнке;аистЯта;аистЯт;аистЯтам;аистЯт;аистЯтами;аистЯтах
актЁр;актЁр;актЁра;актЁру;актЁра;актЁром;актЁре;актЁры;актЁров;актЁрам;актЁров;актЁрами;актЁрах
блеснУть;блеснУть;блеснУл;блеснУла;блеснУло;блеснУли;-;-;-;-;-;-;блеснУ;блеснЁшь;блеснЁт;блеснЁм;блеснЁте;блеснУт;блеснИ;блеснИте;блеснЯ-;блеснУв,блеснУвши;блеснУщий-;блеснУщего-;блеснУщему-;блеснУщий-;блеснУщего-;блеснУщим-;блеснУщем-;блеснУщая-;блеснУщей-;блеснУщей-;блеснУщую-;блеснУщую-;блеснУщей-,блеснУщею-;блеснУщей-;блеснУщее-;блеснУщего-;блеснУщему-;блеснУщее-;блеснУщее-;блеснУщим-;блеснУщем-;блеснУщие-;блеснУщих-;блеснУщим-;блеснУщие-;блеснУщих-;блеснУщими-;блеснУщих-;блеснУщ-;блеснУща-;блеснУще-;блеснУщи-;блеснУвший;блеснУвшего;блеснУвшему;блеснУвший;блеснУвшего;блеснУвшим;блеснУвшем;блеснУвшая;блеснУвшей;блеснУвшей;блеснУвшую;блеснУвшую;блеснУвшей,блеснУвшею;блеснУвшей;блеснУвшее;блеснУвшего;блеснУвшему;блеснУвшее;блеснУвшее;блеснУвшим;блеснУвшем;блеснУвшие;блеснУвших;блеснУвшим;блеснУвшие;блеснУвших;блеснУвшими;блеснУвших;блеснУвш-;блеснУвша-;блеснУвше-;блеснУвши-;блеснОмый-;блеснОмого-;блеснОмому-;блеснОмый-;блеснОмого-;блеснОмым-;блеснОмом-;блеснОмая-;блеснОмой-;блеснОмой-;блеснОмую-;блеснОмую-;блеснОмой-,блеснОмою-;блеснОмой-;блеснОмое-;блеснОмого-;блеснОмому-;блеснОмое-;блеснОмое-;блеснОмым-;блеснОмом-;блеснОмые-;блеснОмых-;блеснОмым-;блеснОмые-;блеснОмых-;блеснОмыми-;блеснОмых-;блеснОм-;блеснОма-;блеснОмо-;блеснОмы-;блЕснутый-;блЕснутого-;блЕснутому-;блЕснутый-;блЕснутого-;блЕснутым-;блЕснутом-;блЕснутая-;блЕснутой-;блЕснутой-;блЕснутую-;блЕснутую-;блЕснутой-,блЕснутою-;блЕснутой-;блЕснутое-;блЕснутого-;блЕснутому-;блЕснутое-;блЕснутое-;блЕснутым-;блЕснутом-;блЕснутые-;блЕснутых-;блЕснутым-;блЕснутые-;блЕснутых-;блЕснутыми-;блЕснутых-;блЕснут-;блЕснута-;блЕснуто-;блЕснуты-

т.е. слова со всеми своими словоформами (выборка из словаря Зализняка) в которых так или иначе встречается буква ё. Словоформы разделены, как видно, точкой с запятой.
Задача отобрать те строки, в которых буква ё встречается во всех словоформах (т.е. во всех полях), и соответственно наоборот - там где не во всех.
Буду признателен если кто подскажет как это сделать используя консольные утилиты (sed или awk).

ps Хочу добавить поддержку буквы «ё» в словарь русской орфографии, который используется в Hunspell. Данный отбор позволит упростить написание правил для файла аффиксов.

 ,

sspphheerraa
()

Попарно разбить символы после слеша

Форум — Development

Доброго времени суток.
Задача сделать следующее. Из файла со строками:

...
лишить/BBLLNN
отбой/IIIi
способ/IIIiIhIk
...
надо получить
...
лишить/;BB;LL;NN;
отбой/;II;Ii;
способ/;II;Ii;Ih;Ik;
...

т.е. в каждой строке после слеша добавить точку с запятой через каждые два символа.
Как можно сделать?

 

sspphheerraa
()

Мультипоточная отработка скрипта, возможно?

Форум — Development

Доброго времени суток. Есть скрипт выводящий полный список всех словоформ из словаря hunspell (спеллчекер такой). С большими словарями работает медленно, загружает только одно ядро процессора.

Можно ли как-то его модифицировать, чтоб задействовались и другие ядра? Если да, то как?

sspphheerraa
()

RSS подписка на новые темы