объединение двух команд в одну команду

Попробуйте использовать CCSM (CompizConfig Settings Manager), чтобы сначала отключить другие плагины.

Помогает ли это?

1
задан 23 February 2011 в 15:14

21 ответ

Вы можете выполнить вывод через sed, в частности:

echo "$string3" | sed ':a;N;$!ba;s/\n/ /g'

. Все кредиты Zsolt Botykai на StackOverflow за его ответ

3
ответ дан 25 July 2018 в 22:26

Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какая была, поэтому использование строки 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 Это именно то, что, я считаю, вы просите.

3
ответ дан 25 July 2018 в 22:26

У 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

2
ответ дан 25 July 2018 в 22:26

Вы можете выполнить вывод через sed, в частности:

echo "$string3" | sed ':a;N;$!ba;s/\n/ /g'

. Все кредиты Zsolt Botykai на StackOverflow за его ответ

3
ответ дан 2 August 2018 в 03:53

Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какая была, поэтому использование строки 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 Это именно то, что, я считаю, вы просите.

3
ответ дан 2 August 2018 в 03:53

У 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

2
ответ дан 2 August 2018 в 03:53

У 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
ответ дан 4 August 2018 в 19:56

Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 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 Именно это я и считаю.

3
ответ дан 4 August 2018 в 19:56

Вы можете выполнить вывод через sed , в частности:

  echo "$ string3" |  sed ': a; N; $! ba; s / \n / / g'  

Все заслуги Zsolt Botykai в StackOverflow для его ответа

3
ответ дан 4 August 2018 в 19:56

У 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
ответ дан 6 August 2018 в 03:59

Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 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 Именно это я и считаю.

3
ответ дан 6 August 2018 в 03:59

Вы можете выполнить вывод через sed , в частности:

  echo "$ string3" |  sed ': a; N; $! ba; s / \n / / g'  

Все заслуги Zsolt Botykai в StackOverflow для его ответа

3
ответ дан 6 August 2018 в 03:59

У 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
ответ дан 7 August 2018 в 21:57

Вы можете выполнить вывод через sed , в частности:

  echo "$ string3" |  sed ': a; N; $! ba; s / \n / / g'  

Все заслуги Zsolt Botykai в StackOverflow для его ответа

3
ответ дан 7 August 2018 в 21:57

Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 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 Именно это я и считаю.

3
ответ дан 7 August 2018 в 21:57

У 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
ответ дан 10 August 2018 в 10:11

Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 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 Именно это я и считаю.

3
ответ дан 10 August 2018 в 10:11

Вы можете выполнить вывод через sed , в частности:

  echo "$ string3" |  sed ': a; N; $! ba; s / \n / / g'  

Все заслуги Zsolt Botykai в StackOverflow для его ответа

3
ответ дан 10 August 2018 в 10:11

У 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
ответ дан 13 August 2018 в 16:33

Вы можете выполнить вывод через sed , в частности:

  echo "$ string3" |  sed ': a; N; $! ba; s / \n / / g'  

Все заслуги Zsolt Botykai в StackOverflow для его ответа

3
ответ дан 13 August 2018 в 16:33

Пара меняется, и она должна работать: Как правило, когда вы используете переменную, подобную той, что вы делали в эхо, исходная переменная остается такой, какой она есть, поэтому использование строки 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 Именно это я и считаю.

3
ответ дан 13 August 2018 в 16:33

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

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