Ищите Значение только в одном столбце w.o использующий awk, sed, или жемчуг

LN работает как CP . Если есть более двух аргументов, последний лечится как каталог.

Из MAN LN :

ln [option]... target... directory

Вместо этого вам нужно использовать для цикла.

0
24.05.2014, 13:29
4 ответа
[1177005]
4
28.01.2020, 02:13

Как сказал Жиль, вы не можете сделать это с [1178858] grep [1178859] в одиночку. [1178860]grep[1178861] означает [1178862]g/re/p[1178863] (команда [1178864]ed/ex/vi[1178865]), т.е. печатайте строки, соответствующие re.[1178418].

2
28.01.2020, 02:13
[1177310] Выбор можно выполнить в [1177847] grep[1177848] путем подбора правильного количества символов из начала строки:[12142]Джон[1177850] должен начинаться и заканчиваться в диапазоне столбцов 11-26.[12143]Замена некоторых столбцов на белые пробелы не входит в возможности grep. С помощью GNU grep вы можете использовать [1177851]-o[1177852] для вывода только соответствующей части, но вы не сможете комбинировать два столбца с дополнительными пробелами между ними.[1177315].
3
28.01.2020, 02:13
[1178664] Объединим некоторые намеки на только что показанные решения. [12177]От Стефана+Жиля:[12178]Здесь нужно использовать [1179128]/bin/grep[1179129], а также [1179130]/bin/cut[1179131].[12179]От Жиля+Гоука:[12180]Здесь нужно использовать [1179132]/bin/grep[1179133], а также [1179134]echo[1179135]. В современной оболочке Вы находите [1179136]echo[1179137] как [1179138] встроенную команду [1179139], поэтому она требует меньше. [12181]Решение Хауке является менее дорогостоящим в плане установленных программ: оно требует только [1179140]echo[1179141] (встроенное так [1179142]bash[1179143]), но даже не [1179144]/bin/grep[1179145], как хотелось бы в вопросе.[12182]Update[1179147] Давайте немного поиграем.[1179148]. В повседневной жизни мы запускаем [1179149] фрагмент кода [1179150], созданный на лету и используемый, возможно, никогда; не всегда получается удобно потратить [1179151] наше человеческое время [1179152] на его оптимизацию или попробовать различные вариации... но [12183]семестр в анно-лицензионном инсанире[12184]: с другой стороны, и с большой вероятностью это был [1179155] вопрос для изучения случая [1179156], может быть, даже [1179157] домашнее задание [1179158] не совсем понятно. В этой оптике и IMHO полезны всевозможные подходы и решения. [12185] Мы все согласны, кажется, что для большого количества строк лучше (быстрее) использовать скомпилированную программу затем последовательность команд оболочки. Но что такое большое? Я думаю, что числа (и графики) могут исправить идеи. лучше, чем просто слова: посмотрим. [12186] Здесь [1179159] рецепт [1179160]: Набор файлов с растущим количеством строк, [12187]N[12188], был подготовлен. Каждая строка была случайным образом извлечена из 11 оригиналов, размещенных здесь.[1179163]. Используемые значения [1179164]N[1179165] равны [12189]11 22 55 110 220 550 1100 2200 5500 11000 110000 11000000 [1179168]. [12190] Тестируемый фрагмент [1179169][1179170]:[12191] Cut+Paste+Grep+Cut[12192]tab=$(printf '\t') ; cut -c12-26 file | paste - file | grep "^[^$tab]*John". | cut -c1-16,60-[1179367] - [1179368]Green[12193]The [1179370]Only Grep[1179371] - Blue [12194]grep -E '^.{11,22}John' source.txt[12195]. Просто [1179374]grep[1179375] без форматированного вывода в соответствии с запросом.[12196]Источник [1179376]Grep+Cut[1179377] - красный [[1179378]grep -E '^.{11,22}John'. txt | cut -c12-26,44-[1179379]].[12197]Grep+While[1179381] - Violet [см. выше в этом ответе, grep before и while loop]. [12198] [1179382] В то время как петля [1179383] - желтый [1179384] - решение полного баса, которое не требует [1179424] grep[12199] Для каждого размера файлов и [1179181] фрагмента [1179182], было сделано несколько повторений, [1179183] NRep[1179184]. начиная с 400 (для более коротких файлов) и уменьшаясь с [1179185]N[1179186] до 100, 10, и 1 для последнего.[1179187] Записано значение [1179188]Время на строку [1179189], [12200]Tpl[12201], так же известное как [1179192]реальное время [1179193], измеренное встроенной функцией. [1179194] время [1179195] и среднее значение по [1179196] NRep[1179197] и [1179198] N[1179199]. Так как оба [1179200]Tpl[1179201] и [1179202]N[1179203] пролетают над полномочиями 10, то было нанесено на карту общий логарифм (к базе 10, или к полномочиям 10). Сообщаемые линии - это кривые Безье, которые касаются каждой точки.[12202]Для больших значений [1179205]N[1179206] [1179207]Время на линию [1179208] становится почти постоянным. Это так называемое асимптотическое поведение. Как и ожидалось, чем меньше используется число скомпилированной программы, тем быстрее получается результат. [12203] Напротив, при маленьких файлах результат получается обратным. Эффективность различных кодов пересекается в регионе, который (например, в нашем примере) находится между 40 и 140 строками. Даже если верно, что для малых файлов используется даже общее [1179210] человеческое время [1179211], то же самое соображение перестает быть актуальным, когда необходимо работать с большим количеством маленьких файлов: чистый бэш-код (желтый), который асимптотически в 8.12 раз медленнее зеленого, и [1179212] даже в 157 раз медленнее [1179213], чем красный (для файла 11М строк он использует 334,56 с. вместо 41,21 с. зеленого и 2,16 с. красного). вместо 1,89s красного или 2,59s зеленого вместо 1,16s красного и 1,58s зеленого вместо 1,20s - соответственно в 2,16 и 1,58s - в 1,58 раза быстрее. [12204]Вывод:[12205]Чем больше ты знаешь, тем лучше ты бросаешь вызов[1179217], и всегда проверяй, когда можешь! :-)[12206]Ps> Аналогичное рассмотрение можно провести в [1179218]пользовательском времени[1179219] и [1179220]sys времени[1179221], но с немного другой областью пересечения.[12207]bash[1179223] 4.3.11(1)-release[12208]paste[1179226] (GNU coreutils) 8.21[12209]cut[1179229] (GNU coreutils) 8.21[12210]grep[1179232] (GNU grep) 2.16[12211]kernel[1179235] 3.13.0-24-generic x86_64 [1178703].
1
28.01.2020, 02:13

Теги

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