sed отлично подходит для s / old / new, но для всего остального просто используйте awk:
$ awk 'NR==FNR{new=new [110] ORS; next} {print} [110]=="/def/ghi/jkl"{printf "%s", new}' numbers letters
/abc/def/ghi
/def/ghi/jkl
123
/ghi/jkl/mno
Вышеописанное будет работать в любом awk в любой оболочке на любой коробке UNIX для любого содержимого любого входные файлы. Он просто создает переменную с именем «new», читая numbers
по одной строке за раз и конкатенируя, затем читает letters
и печатает текущую строку, а затем печатает содержимое new
, если текущая строка - это строка интересует.
Я запускаю код для события щелчка. HTML-код, который вы написали, довольно хорош, но по неизвестной мне причине он не работает. Тем не менее, я нашел работу. (Я пытаюсь получить разделенную запятыми строку всех значений в первом td для видимых строк) В любом случае следующая работа выполняет свою работу.
var notfirst = false;
var serials = "";
var tds = $("table.SimpleTable tbody tr:visible td:first-child");
for (var i = 0; i < tds.length; i++) {
var td = $(tds[i]);
if (td.is(":hidden"))
continue;
if (notfirst)
serials += ",";
else
notfirst = true;
serials += $.trim(td.text());
}
По какой-то причине тег: hidden работает правильно, но не: visible в IE7
Из документации:
«Как вычисляется: visible было изменено в jQuery 1.3.2. Элемент считается видимым, если он и его родители занимают место в документе. Видимость CSS не принимается во внимание account. "
Возможно, это как-то связано с этим. Попробуйте использовать селектор классов или что-то в этом роде вместо tr: visible
Это должно работать. С HTML, который выглядит так:
<table class='SimpleTable'>
<tr style='display: none;'>
<td>test1</td>
</tr>
<tr>
<td>test2</td>
</tr>
<tr>
<td>test3</td>
</tr>
<tr style='display: none;'>
<td>test4</td>
</tr>
<tr>
<td>test5</td>
</tr>
<tr>
<td>test6</td>
</tr>
</table>
Делаем это:
$("table.SimpleTable tbody tr:visible td:first-child").css('color','red');
Делает цвет красным в Firefox, IE7 для меня. Как выглядит ваш HTML?
EDIT : Мне очень странно, что вам нужно делать то, что вы делаете прямо сейчас. Вы должны иметь возможность заменить то, что у вас есть прямо сейчас, следующим образом:
var serials = [];
$("table.SimpleTable tbody tr:visible td:first-child").each(function() {
serials.push($.trim($(this).text()));
});
var serials = serials.join(',');
Если TD заполняются из селектора, они должны быть только видимыми. Если вы добавляете скрытые TD в сериалы (что, я должен подчеркнуть, на самом деле не должно происходить и где-то есть ошибка или признак ошибки), попробуйте вместо этого использовать этот селектор:
$("table.SimpleTable tbody tr:not(:hidden) td:first-child")
почему бы тебе не разделить его немного?
$("table.SimpleTable").find("tr:visible").find("td:first-child").text()
?