Попробуйте использовать CCSM (CompizConfig Settings Manager), чтобы сначала отключить другие плагины.
Помогает ли это?
Вы можете выполнить вывод через sed, в частности:
echo "$string3" | sed ':a;N;$!ba;s/\n/ /g'
. Все кредиты Zsolt Botykai на StackOverflow за его ответ
Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какая была, поэтому использование строки 2 совершенно не нужно. Кроме того, у меня есть привычка использовать фигурные скобки для {enclose} переменных, чтобы на них можно было ссылаться прямо внутри текста, работа в фигурных скобках, чтобы разграничить имя переменной, просто поместите знак доллара впереди (пример следовать).
1- Когда вы впервые установили string1, не помещайте пробелы по обе стороны от знака равенства. 2- при назначении результатов команды переменной вы должны принудительно команда, которую нужно выполнить, одиночные обратные тики (символ слева от клавиши №1 на клавиатурах США), окружающих команду, делают это. 3- смотреть на количество символов, которые вы вырезали, ваш код и пример не согласны. Так что строка должна выглядеть так:
string1=`echo $pos | cut -c 20-38`
Другое дело, когда вы устанавливаете одно значение из другого, не включайте знак дополнительного равенства. Таким образом, код для установки строки2 должен выглядеть так:
string2="$pos"
Я полагаю, что следующее будет выполняться по вашему запросу, я скорректировал количество символов, чтобы дать результат вашего примера:
Входной файл для моего теста содержал: abcdefghi1234567890QWERTYUXY.tar.gz И мой скрипт:
#!/bin/sh
while read pos; do
string1=`echo ${pos} | cut -c 10-28`
echo "${string1} ${pos}"
done < file
Выход выглядит следующим образом: 1234567890QWERTYUXY abcdefghi1234567890QWERTYUXY.tar.gz Это именно то, что, я считаю, вы просите.
У Bash есть мощная подстановка переменных, которая избавит вас от необходимости создавать дополнительные переменные и pipe для другой команды. Возможно, попробуйте что-то подобное
while read pos; do
echo "${pos} ${pos%.tar.gz}"
done
Общая форма ${var%Pattern} - Удалить из $ var кратчайшую часть $Pattern, которая соответствует заднему концу $var.
http://www.tldp.org/LDP/abs/html/parameter-substitution.html
Вы можете выполнить вывод через sed, в частности:
echo "$string3" | sed ':a;N;$!ba;s/\n/ /g'
. Все кредиты Zsolt Botykai на StackOverflow за его ответ
Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какая была, поэтому использование строки 2 совершенно не нужно. Кроме того, у меня есть привычка использовать фигурные скобки для {enclose} переменных, чтобы на них можно было ссылаться прямо внутри текста, работа в фигурных скобках, чтобы разграничить имя переменной, просто поместите знак доллара впереди (пример следовать).
1- Когда вы впервые установили string1, не помещайте пробелы по обе стороны от знака равенства. 2- при назначении результатов команды переменной вы должны принудительно команда, которую нужно выполнить, одиночные обратные тики (символ слева от клавиши №1 на клавиатурах США), окружающих команду, делают это. 3- смотреть на количество символов, которые вы вырезали, ваш код и пример не согласны. Так что строка должна выглядеть так:
string1=`echo $pos | cut -c 20-38`
Другое дело, когда вы устанавливаете одно значение из другого, не включайте знак дополнительного равенства. Таким образом, код для установки строки2 должен выглядеть так:
string2="$pos"
Я полагаю, что следующее будет выполняться по вашему запросу, я скорректировал количество символов, чтобы дать результат вашего примера:
Входной файл для моего теста содержал: abcdefghi1234567890QWERTYUXY.tar.gz И мой скрипт:
#!/bin/sh
while read pos; do
string1=`echo ${pos} | cut -c 10-28`
echo "${string1} ${pos}"
done < file
Выход выглядит следующим образом: 1234567890QWERTYUXY abcdefghi1234567890QWERTYUXY.tar.gz Это именно то, что, я считаю, вы просите.
У Bash есть мощная подстановка переменных, которая избавит вас от необходимости создавать дополнительные переменные и pipe для другой команды. Возможно, попробуйте что-нибудь подобное
while read pos; do
echo "${pos} ${pos%.tar.gz}"
done
Общая форма ${var%Pattern} - Удалить из $ var кратчайшую часть $Pattern, которая соответствует заднему концу $var.
http://www.tldp.org/LDP/abs/html/parameter-substitution.html
У Bash есть мощная подстановка переменных, которая избавит вас от необходимости создавать дополнительные переменные и pipe для другой команды. Возможно, попробуйте что-то подобное
во время чтения pos; do echo "$ {pos} $ {pos% .tar.gz}" done
Общая форма $ {var% Pattern}
- Удалить из $ var
кратчайшая часть $ Pattern
, которая соответствует обратному концу $ var
.
http: / /www.tldp.org/LDP/abs/html/parameter-substitution.html
Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 2 совершенно не нужно. Кроме того, у меня есть привычка использовать фигурные скобки для {enclose} переменных, чтобы на них можно было ссылаться прямо внутри текста, работа в фигурных скобках, чтобы разграничить имя переменной, просто поместите знак доллара впереди (пример следовать).
1- Когда вы впервые установили string1, не помещайте пробелы по обе стороны от знака равенства. 2- при присваивании результатов команды переменной вам необходимо принудительно выполнить команду для выполнения, одиночные обратные тики (символ слева от клавиши # 1 на клавиатурах США), окружающих команду, делают это. 3- смотреть на количество символов, которые вы вырезали, ваш код и пример не согласны. Так что строка должна выглядеть так:
string1 = `echo $ pos | cut -c 20-38`
Другое дело, когда вы устанавливаете одно значение из другого, не включайте дополнительный знак равенства. Таким образом, код для установки строки2 должен выглядеть так:
string2 = "$ pos"
Я полагаю, что следующее будет выполняться по вашему запросу, я скорректировал character counts, чтобы дать результат вашего примера:
Входной файл для моего теста содержал: abcdefghi1234567890QWERTYUXY.tar.gz И мой скрипт:
#! / bin / sh во время чтения pos; do string1 = `echo $ {pos} | cut -c 10-28` echo "$ {string1} $ {pos}" done & lt; file
Результат выглядит следующим образом: 1234567890QWERTYUXY abcdefghi1234567890QWERTYUXY.tar.gz Именно это я и считаю.
Вы можете выполнить вывод через sed
, в частности:
echo "$ string3" | sed ': a; N; $! ba; s / \n / / g'
Все заслуги Zsolt Botykai в StackOverflow для его ответа
У Bash есть мощная подстановка переменных, которая избавит вас от необходимости создавать дополнительные переменные и pipe для другой команды. Возможно, попробуйте что-то подобное
во время чтения pos; do echo "$ {pos} $ {pos% .tar.gz}" done
Общая форма $ {var% Pattern}
- Удалить из $ var
кратчайшая часть $ Pattern
, которая соответствует обратному концу $ var
.
http: / /www.tldp.org/LDP/abs/html/parameter-substitution.html
Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 2 совершенно не нужно. Кроме того, у меня есть привычка использовать фигурные скобки для {enclose} переменных, чтобы на них можно было ссылаться прямо внутри текста, работа в фигурных скобках, чтобы разграничить имя переменной, просто поместите знак доллара впереди (пример следовать).
1- Когда вы впервые установили string1, не помещайте пробелы по обе стороны от знака равенства. 2- при присваивании результатов команды переменной вам необходимо принудительно выполнить команду для выполнения, одиночные обратные тики (символ слева от клавиши # 1 на клавиатурах США), окружающих команду, делают это. 3- смотреть на количество символов, которые вы вырезали, ваш код и пример не согласны. Так что строка должна выглядеть так:
string1 = `echo $ pos | cut -c 20-38`
Другое дело, когда вы устанавливаете одно значение из другого, не включайте дополнительный знак равенства. Таким образом, код для установки строки2 должен выглядеть так:
string2 = "$ pos"
Я полагаю, что следующее будет выполняться по вашему запросу, я скорректировал character counts, чтобы дать результат вашего примера:
Входной файл для моего теста содержал: abcdefghi1234567890QWERTYUXY.tar.gz И мой скрипт:
#! / bin / sh во время чтения pos; do string1 = `echo $ {pos} | cut -c 10-28` echo "$ {string1} $ {pos}" done & lt; file
Результат выглядит следующим образом: 1234567890QWERTYUXY abcdefghi1234567890QWERTYUXY.tar.gz Именно это я и считаю.
Вы можете выполнить вывод через sed
, в частности:
echo "$ string3" | sed ': a; N; $! ba; s / \n / / g'
Все заслуги Zsolt Botykai в StackOverflow для его ответа
У Bash есть мощная подстановка переменных, которая избавит вас от необходимости создавать дополнительные переменные и pipe для другой команды. Возможно, попробуйте что-то подобное
во время чтения pos; do echo "$ {pos} $ {pos% .tar.gz}" done
Общая форма $ {var% Pattern}
- Удалить из $ var
кратчайшая часть $ Pattern
, которая соответствует обратному концу $ var
.
http: / /www.tldp.org/LDP/abs/html/parameter-substitution.html
Вы можете выполнить вывод через sed
, в частности:
echo "$ string3" | sed ': a; N; $! ba; s / \n / / g'
Все заслуги Zsolt Botykai в StackOverflow для его ответа
Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 2 совершенно не нужно. Кроме того, у меня есть привычка использовать фигурные скобки для {enclose} переменных, чтобы на них можно было ссылаться прямо внутри текста, работа в фигурных скобках, чтобы разграничить имя переменной, просто поместите знак доллара впереди (пример следовать).
1- Когда вы впервые установили string1, не помещайте пробелы по обе стороны от знака равенства. 2- при присваивании результатов команды переменной вам необходимо принудительно выполнить команду для выполнения, одиночные обратные тики (символ слева от клавиши # 1 на клавиатурах США), окружающих команду, делают это. 3- смотреть на количество символов, которые вы вырезали, ваш код и пример не согласны. Так что строка должна выглядеть так:
string1 = `echo $ pos | cut -c 20-38`
Другое дело, когда вы устанавливаете одно значение из другого, не включайте дополнительный знак равенства. Таким образом, код для установки строки2 должен выглядеть так:
string2 = "$ pos"
Я полагаю, что следующее будет выполняться по вашему запросу, я скорректировал character counts, чтобы дать результат вашего примера:
Входной файл для моего теста содержал: abcdefghi1234567890QWERTYUXY.tar.gz И мой скрипт:
#! / bin / sh во время чтения pos; do string1 = `echo $ {pos} | cut -c 10-28` echo "$ {string1} $ {pos}" done & lt; file
Результат выглядит следующим образом: 1234567890QWERTYUXY abcdefghi1234567890QWERTYUXY.tar.gz Именно это я и считаю.
У Bash есть мощная подстановка переменных, которая избавит вас от необходимости создавать дополнительные переменные и pipe для другой команды. Возможно, попробуйте что-то подобное
во время чтения pos; do echo "$ {pos} $ {pos% .tar.gz}" done
Общая форма $ {var% Pattern}
- Удалить из $ var
кратчайшая часть $ Pattern
, которая соответствует обратному концу $ var
.
http: / /www.tldp.org/LDP/abs/html/parameter-substitution.html
Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 2 совершенно не нужно. Кроме того, у меня есть привычка использовать фигурные скобки для {enclose} переменных, чтобы на них можно было ссылаться прямо внутри текста, работа в фигурных скобках, чтобы разграничить имя переменной, просто поместите знак доллара впереди (пример следовать).
1- Когда вы впервые установили string1, не помещайте пробелы по обе стороны от знака равенства. 2- при присваивании результатов команды переменной вам необходимо принудительно выполнить команду для выполнения, одиночные обратные тики (символ слева от клавиши # 1 на клавиатурах США), окружающих команду, делают это. 3- смотреть на количество символов, которые вы вырезали, ваш код и пример не согласны. Так что строка должна выглядеть так:
string1 = `echo $ pos | cut -c 20-38`
Другое дело, когда вы устанавливаете одно значение из другого, не включайте дополнительный знак равенства. Таким образом, код для установки строки2 должен выглядеть так:
string2 = "$ pos"
Я полагаю, что следующее будет выполняться по вашему запросу, я скорректировал character counts, чтобы дать результат вашего примера:
Входной файл для моего теста содержал: abcdefghi1234567890QWERTYUXY.tar.gz И мой скрипт:
#! / bin / sh во время чтения pos; do string1 = `echo $ {pos} | cut -c 10-28` echo "$ {string1} $ {pos}" done & lt; file
Результат выглядит следующим образом: 1234567890QWERTYUXY abcdefghi1234567890QWERTYUXY.tar.gz Именно это я и считаю.
Вы можете выполнить вывод через sed
, в частности:
echo "$ string3" | sed ': a; N; $! ba; s / \n / / g'
Все заслуги Zsolt Botykai в StackOverflow для его ответа
У Bash есть мощная подстановка переменных, которая избавит вас от необходимости создавать дополнительные переменные и pipe для другой команды. Возможно, попробуйте что-то подобное
во время чтения pos; do echo "$ {pos} $ {pos% .tar.gz}" done
Общая форма $ {var% Pattern}
- Удалить из $ var
кратчайшая часть $ Pattern
, которая соответствует обратному концу $ var
.
http: / /www.tldp.org/LDP/abs/html/parameter-substitution.html
Вы можете выполнить вывод через sed
, в частности:
echo "$ string3" | sed ': a; N; $! ba; s / \n / / g'
Все заслуги Zsolt Botykai в StackOverflow для его ответа
Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 2 совершенно не нужно. Кроме того, у меня есть привычка использовать фигурные скобки для {enclose} переменных, чтобы на них можно было ссылаться прямо внутри текста, работа в фигурных скобках, чтобы разграничить имя переменной, просто поместите знак доллара впереди (пример следовать).
1- Когда вы впервые установили string1, не помещайте пробелы по обе стороны от знака равенства. 2- при присваивании результатов команды переменной вам необходимо принудительно выполнить команду для выполнения, одиночные обратные тики (символ слева от клавиши # 1 на клавиатурах США), окружающих команду, делают это. 3- смотреть на количество символов, которые вы вырезали, ваш код и пример не согласны. Так что строка должна выглядеть так:
string1 = `echo $ pos | cut -c 20-38`
Другое дело, когда вы устанавливаете одно значение из другого, не включайте дополнительный знак равенства. Таким образом, код для установки строки2 должен выглядеть так:
string2 = "$ pos"
Я полагаю, что следующее будет выполняться по вашему запросу, я скорректировал character counts, чтобы дать результат вашего примера:
Входной файл для моего теста содержал: abcdefghi1234567890QWERTYUXY.tar.gz И мой скрипт:
#! / bin / sh во время чтения pos; do string1 = `echo $ {pos} | cut -c 10-28` echo "$ {string1} $ {pos}" done & lt; file
Результат выглядит следующим образом: 1234567890QWERTYUXY abcdefghi1234567890QWERTYUXY.tar.gz Именно это я и считаю.