LINUX.ORG.RU

История изменений

Исправление kaldeon, (текущая версия) :

ssam -e '{
	d
	3, x/''[^'']*''/ g/dB/ x/-?[0-9]+(\.[0-9]+)?/ {
		t $
		$ a/,/
	}
}'
  1. d удаляет всё содержимое
  2. 3, определяет адрес для следующей команды (с третьей строки до конца)
  3. x/''[^'']*''/ создаёт цикл по всем срезам в кавычках. '' - это способ записать одинарную кавычку в шелле.
  4. g/dB/ - это условие наличия dB в текущем срезе
  5. x/-?[0-9]+(\.[0-9]+)?/ создаёт цикл по всем числам в текущем срезе в кавычках. Здесь можно пошаманить с определением числа.
  6. t $ записывает число в конец
  7. $ a/,/ добавляет запятую в конец

Все команды запускаются одновременно и видят только исходный стейт. Из этого следует, что изменения должны проходить по порядку и без пересечений.

Исправление kaldeon, :

ssam -e '{
	d
	3, x/''[^'']*''/ g/dB/ x/-?[0-9]+(\.[0-9]+)?/ {
		t $
		$ a/,/
	}
}'
  1. d удаляет всё содержимое
  2. 3, определяет адрес для следующей команды (с третьей строки до конца)
  3. x/''[^'']*''/ создаёт цикл по всем срезам в кавычках. '' - это способ записать одинарную кавычку в шелле.
  4. g/dB/ - это условие наличия dB в текущем срезе
  5. x/-?[0-9]+(\.[0-9]+)?/ создаёт цикл по всем числам в текущем срезе в кавычках. Здесь можно пошаманить с определением числа.
  6. t $ записывает число в конец
  7. $ a/,/ добавляет запятую в конец

Исправление kaldeon, :

ssam -e '{
	d
	3, x/''[^'']*''/ g/dB/ x/-?[0-9]+(\.[0-9]+)?/ {
		t $
		$ a/,/
	}
}'
  1. d удаляет всё содержимое
  2. 3, определяет адрес для следующей команды
  3. x/''[^'']*''/ создаёт цикл по всем срезам в кавычках. '' - это способ записать одинарную кавычку в шелле.
  4. g/dB/ - это условие наличия dB в текущем срезе
  5. x/-?[0-9]+(\.[0-9]+)?/ создаёт цикл по всем числам в текущем срезе в кавычках. Здесь можно пошаманить с определением числа.
  6. t $ записывает число в конец
  7. $ a/,/ добавляет запятую в конец

Исходная версия kaldeon, :

ssam -e '{
	d
	3, x/''[^'']*''/ g/dB/ x/-?[0-9]+(\.[0-9]+)?/ {
		t $
		$ a/,/
	}
}'
  1. d удаляет всё содержимое
  2. 3, определяет адрес для следующей команды
  3. x/''[^'']*''/ создаёт цикл по всем срезам в кавычках. '' - это способ записать одинарную кавычку в шелле.
  4. g/dB/ - это условие наличия dB в текущем срезе
  5. x/-?[0-9]+(\.[0-9]+)?/ создаёт цикл по всем числам в текущем срезе в кавычках. Здесь можно пошаманить с определением числа.
  6. t $ записывает число в конец
  7. $ a/,/ добавляет запятую в конец