У меня есть файл вида:Sed и Awk вызывая линии наматывается вокруг
FA01_01:The birch canoe slid on the smooth planks
FA01_02:Glue the sheet to the dark blue background
мне это нужно, чтобы быть в форме (также обратите внимание на использование нижнего регистра):
<s> the birch canoe slid on the smooth planks </s> (FA01_01)
<s> glue the sheet to the dark blue background </s> (FA01_02)
поэтому я попытался следующее выражение с СЭД:
sed 's/\(.......\):\(.*$\)/(\1) <s> \2 <\/s>/' tmp.dat
, но это то, что он вернулся:
</s> (FA01_01)anoe slid on the smooth planks
</s> (FA01_02)eet to the dark blue background
По какой-то причине кажется, что sed вызывает замену шаблона на начало строки, но только для второго совпадения. Пример:
$> sed 's/\(.......\):\(.*$\)/\1 \2/' tmp.dat
FA01_01 The birch canoe slid on the smooth planks
правильно, но
$>sed 's/\(.......\):\(.*$\)/\2 \1/' tmp.dat
FA01_01h canoe slid on the smooth planks
Это происходит даже с AWK, а также. Ради проверки гипотезы панорамную:
$> awk 'BEGIN{FS=":"}{print tolower($2) "XXX"}' tmp.dat
XXX birch canoe slid on the smooth planks
но
$> awk 'BEGIN{FS=":"}{print tolower($1) "XXX"}' tmp.dat
fa01_01XXX
Любые идеи, что бы быть причиной этой линии завернуть? Имеет ли это какое-либо отношение к тому факту, что второй шаблон или сохраненный столбец идет до конца строки?
я не нашел программу dos2unix, так что я сделал «tr -d» \ r'' во временный файл. И ты прав. Я сделал несколько временных тестов, и символ '\ r' будет помещать то, что следует в начало текущей строки. Благодарю. – CoconutBandit