Как усечь длину строки STDIN?

{% for item in string %} не похож на javascript. это какая-то рубиновая штука или что-то? Он ищет переменную string, определенную на любом языке, не являющемся javascript, из которого поступает этот тег, и его неопределенную или неинициализированную, поскольку он не имеет доступа к переменным javscript.

Если вы сделаете его массивом JS (вместо объявления массива внутри строки, как оно есть в настоящее время), вы можете просто назначить массив js напрямую, даже без зацикливания, т.е.

var string = ['text1', 'text2', 'text3', 'text4']; //no double quotes on the outside
var barData = {
labels : string,
//...
[ 116] Причина, по которой ваш цикл data работает, заключается в том, что переменная, литерал массива, определена внутри тега, поэтому она имеет к ней доступ.

7
задан double-beep 18 April 2019 в 19:31
поделиться

8 ответов

Вывод канала к:

cut -b 1-LIMIT

Где ПРЕДЕЛ является желаемой шириной строки.

12
ответ дан 6 December 2019 в 07:08
поделиться

Не точно отвечая на вопрос, но если Вы хотите придерживаться Perl и использовать остроту, возможность:

$ perl -pe's/(?<=.{25}).*//' filename

где 25 желаемая длина строки.

2
ответ дан 6 December 2019 в 07:08
поделиться

Другая тактика, которую я использую для просмотра файлов журнала с очень длинными строками, должна передать файл по каналу к "меньшему количеству-S".-S опция для меньшего распечатает строки без обертывания, и можно просмотреть скрытую часть длинных линий путем нажатия клавиши со стрелкой вправо.

11
ответ дан 6 December 2019 в 07:08
поделиться

Обычный способ сделать это было бы

perl -wlne'print substr($_,0,80)'

Игравший в гольф (для 5,10):

perl -nE'say/(.{0,80})/'

(Не думайте о нем как о программировании, думайте о нем как об использовании инструмента командной строки с огромным числом вариантов.) (Да, ссылка Python является намеренной.)

0
ответ дан 6 December 2019 в 07:08
поделиться

Решение для оболочки Korn (усекающий к 70 символам - легкий параметризовать, хотя):

typeset -L70 line
while read line
do
  print $line
done
0
ответ дан 6 December 2019 в 07:08
поделиться

Можно использовать связанную переменную, которая отсекает ее содержание к фиксированной длине:

#! /usr/bin/perl -w

use strict;
use warnings
use String::FixedLen;

tie my $str, 'String::FixedLen', 4;

while (defined($str = <>)) {
    chomp;
    print "$str\n";
}
0
ответ дан 6 December 2019 в 07:08
поделиться

Это не точно, что Вы просите, но Экран GNU (включенный с OS X, если я вспоминаю правильно, и распространенный на другом *отклоняют системы), позволяет Вам повернуть строку, переносящуюся вкл\выкл (C-a r и C-a C-r). Тем путем можно просто изменить размер терминала вместо того, чтобы передать материал по каналу через сценарий.

Экран в основном дает Вам "виртуальные" терминалы в рамках одного терминального приложения верхнего уровня.

0
ответ дан 6 December 2019 в 07:08
поделиться
use strict;
use warnings
use String::FixedLen;

tie my $str, 'String::FixedLen', 4;

while (defined($str = <>)) {
    chomp;
    print "$str\n";
}
0
ответ дан 6 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

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