Отсортированные файлы Cat

Попробуйте

replacementLine=$(echo ${originalLine} | sed -E 's/('${escParamToChange}'=)"[^"]+"/\1"'${value}'"/')
  • \1заменяет захваченную группу('${escParamToChange}'=)(ярлыком)
  • "[^"]+"соответствует значению, начинающемуся с ", за которым следует один или несколько символов, отличных от -" -, за которыми следует закрывающий"

Работает над "sed (GNU sed )4.4"

$ originalLine='<com.whatsapp.voipcalling.VideoCallParticipantViewLayout android:id="@id/video_participant_views" android:layout_width="fill_parent" android:layout_height="fill_parent"/>'
$ value="10dip"
$ for escParamToChange in android:layout_width android:layout_height; do echo ${originalLine} | sed -E 's/('${escParamToChange}'=)"[^"]+"/\1"'${value}'"/'; done
<com.whatsapp.voipcalling.VideoCallParticipantViewLayout android:id="@id/video_participant_views" android:layout_width="10dip" android:layout_height="fill_parent"/>
<com.whatsapp.voipcalling.VideoCallParticipantViewLayout android:id="@id/video_participant_views" android:layout_width="fill_parent" android:layout_height="10dip"/>
0
06.04.2021, 22:15
1 ответ

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

.
 find filename -name '*.txt' -print0 | sort -z | xargs -0 cat  > combined.txt

Что он делает:

  • найти файлы =>C.txt A.txt B.txt
  • сортировать по файлам именам =>A.txt B.txt C.txt
  • объединить файлы в следующем порядке =>cat A.txt B.txt C.txt
  • нет сортировки содержимого отдельных файлов и совокупного содержимого
3
28.04.2021, 22:53

Теги

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