Как файл cat с лимитом печатных символов из каждой строки?

GT520 и GT430 должны быть достаточно способны воспроизводить Flash Video 1080p. Мой 8800 GTS способен и значительно менее мощный, чем любая из этих карт.

Официальная рекомендация для системных спецификаций Adobe для воспроизведения 1080p в Linux:

1.8GHz Intel Core Duo, AMD Athlon 64 X2 4200+, or faster processor 
512MB of RAM
64MB of graphics memory

Кроме того, официальная рекомендация для системных спецификаций от Adobe для воспроизведения 1080p [!d2 ], которые поддерживают аппаратное ускорение с помощью Flash 10.3. Я должен отметить, что для этого требуется собственный драйвер NVidia с VDPAU.

4
задан 5 October 2017 в 01:49

6 ответов

С помощью инструмента cut вы можете ограничить вывод до 100. Поскольку вас интересует только characters, поэтому столбцы, которые они занимают, должны делать это красиво:

cut -c-100 file

В случае, если вы (d2)

sed 's/ //g' file | cut -c-100

См. man cut

Использование awk:

awk '{ print substr( $0, 0, 100 ) }' file

Избавление если это необходимо:

awk '{ gsub (" ", "", $0); print substr( $0, 0, 100 ) }' file

AWK:

gsub (" ", "", $0): найдите " " (пробелы) и замените на "" глобально в целевой строке $0.

substr( $0, 0, 100 ): он возвращает 100 чисел символов из строки $ 0, начиная с позиции 0.

6
ответ дан 22 May 2018 в 17:50

С помощью инструмента cut вы можете ограничить вывод до 100. Поскольку вас интересует только characters, поэтому столбцы, которые они занимают, должны делать это красиво:

cut -c-100 file

В случае, если вы (d2) sed 's/ //g' file | cut -c-100

См. man cut

Использование awk:

awk '{ print substr( $0, 0, 100 ) }' file

Избавление если это необходимо:

awk '{ gsub (" ", "", $0); print substr( $0, 0, 100 ) }' file

AWK:

gsub (" ", "", $0): найдите " " (пробелы) и замените на "" глобально в целевой строке $0.

substr( $0, 0, 100 ): он возвращает 100 чисел символов из строки $ 0, начиная с позиции 0.

6
ответ дан 18 July 2018 в 05:45

С помощью инструмента cut вы можете ограничить вывод до 100. Поскольку вас интересует только characters, поэтому столбцы, которые они занимают, должны делать это красиво:

cut -c-100 file

В случае, если вы (d2) sed 's/ //g' file | cut -c-100

См. man cut

Использование awk:

awk '{ print substr( $0, 0, 100 ) }' file

Избавление если это необходимо:

awk '{ gsub (" ", "", $0); print substr( $0, 0, 100 ) }' file

AWK:

gsub (" ", "", $0): найдите " " (пробелы) и замените на "" глобально в целевой строке $0.

substr( $0, 0, 100 ): он возвращает 100 чисел символов из строки $ 0, начиная с позиции 0.

6
ответ дан 24 July 2018 в 18:26

Способ [Shell]

bash и ksh для достижения этого будет:

while IFS= read -r line || [ -n "$line" ];do printf "%s\n" "${line:0:100}"; done < input.txt

Здесь мы воспользуемся расширением параметра в форме ${parameter:start:offset} для печати из начальная точка до смещения. Следует отметить, что это не указано POSIX и не работает в dash (по умолчанию /bin/sh на Ubuntu).

Perl

perl -ne 'printf "%s\n",substr($_,0,100)' input.txt

Это занимает преимущество встроенного не задается функцией POSIX .

Python

python - это Python 2.7 на Ubuntu:

python -c 'import sys; print "\n".join(map(lambda x: x[:100],sys.stdin.readlines()))' < input.txt

Для python3 заключите аргументы в print с фигурными скобками:

python3 -c 'import sys; print("\n".join(map(lambda x: x[:100],sys.stdin.readlines())))' < input.txt

Это использует перенаправление оболочки для содержимого файла в поток stdin python, затем считывает все строки в список из списка stdin ,. Функция map() позволяет нам обрабатывать этот список через lambda x: x[:100], получая новый список, где каждый элемент представляет собой срез каждой соответствующей строки, длиной 100 символов. "\n".join() позволяет объединить список строк в один снова с новой строкой как разделитель.

2
ответ дан 22 May 2018 в 17:50
  • 1
    +1 Отличные примеры программирования Серж. Я думаю, что пример bash может быть скопирован и вставлен как простой для понимания однострочный терминал. – WinEunuuchs2Unix 26 January 2018 в 02:46

Способ [Shell]

bash и ksh для достижения этого будет:

while IFS= read -r line || [ -n "$line" ];do printf "%s\n" "${line:0:100}"; done < input.txt

Здесь мы воспользуемся расширением параметра в форме ${parameter:start:offset} для печати из начальная точка до смещения. Следует отметить, что это не указано POSIX и не работает в dash (по умолчанию /bin/sh на Ubuntu).

Perl

perl -ne 'printf "%s\n",substr($_,0,100)' input.txt

Это занимает преимущество встроенного не задается функцией POSIX .

Python

python - это Python 2.7 на Ubuntu:

python -c 'import sys; print "\n".join(map(lambda x: x[:100],sys.stdin.readlines()))' < input.txt

Для python3 заключите аргументы в print с фигурными скобками:

python3 -c 'import sys; print("\n".join(map(lambda x: x[:100],sys.stdin.readlines())))' < input.txt

Это использует перенаправление оболочки для содержимого файла в поток stdin python, затем считывает все строки в список из списка stdin ,. Функция map() позволяет нам обрабатывать этот список через lambda x: x[:100], получая новый список, где каждый элемент представляет собой срез каждой соответствующей строки, длиной 100 символов. "\n".join() позволяет объединить список строк в один снова с новой строкой как разделитель.

2
ответ дан 18 July 2018 в 05:45

Способ [Shell]

bash и ksh для достижения этого будет:

while IFS= read -r line || [ -n "$line" ];do printf "%s\n" "${line:0:100}"; done < input.txt

Здесь мы воспользуемся расширением параметра в форме ${parameter:start:offset} для печати из начальная точка до смещения. Следует отметить, что это не указано POSIX и не работает в dash (по умолчанию /bin/sh на Ubuntu).

Perl

perl -ne 'printf "%s\n",substr($_,0,100)' input.txt

Это занимает преимущество встроенного не задается функцией POSIX .

Python

python - это Python 2.7 на Ubuntu:

python -c 'import sys; print "\n".join(map(lambda x: x[:100],sys.stdin.readlines()))' < input.txt

Для python3 заключите аргументы в print с фигурными скобками:

python3 -c 'import sys; print("\n".join(map(lambda x: x[:100],sys.stdin.readlines())))' < input.txt

Это использует перенаправление оболочки для содержимого файла в поток stdin python, затем считывает все строки в список из списка stdin ,. Функция map() позволяет нам обрабатывать этот список через lambda x: x[:100], получая новый список, где каждый элемент представляет собой срез каждой соответствующей строки, длиной 100 символов. "\n".join() позволяет объединить список строк в один снова с новой строкой как разделитель.

2
ответ дан 24 July 2018 в 18:26
  • 1
    +1 Отличные примеры программирования Серж. Я думаю, что пример bash может быть скопирован и вставлен как простой для понимания однострочный терминал. – WinEunuuchs2Unix 26 January 2018 в 02:46

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

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