Надо поменять 2 строки - PullRequest
0 голосов
/ 29 мая 2019

Для каждого экземпляра кода ниже (их много) мне нужно поменять строку «userId» на строку «screen_name», чтобы строка «screen_name» была выше строки «userId».

{
  active: true,
  userId: '14053424',
  screen_name: '0xstark',
  maxTopTweets: 2,
  minLikesCount: 2,
  keywordsToReject: [],
  keywords: [],
  useDefaultKeywords: true,
  useDefaultRejectKeywords: true,
  useStrictKeywords: false,
  defaultPhoto: null,
},

Ответы [ 2 ]

1 голос
/ 29 мая 2019

Чтобы перевернуть строки user_id и отображаемого имени:

awk '/userId:/{uid=$0;next}/screen_name/{$0 = $0 RS uid}1' input

Сохраняет строку, содержащую строку userId:, в переменную uid и перемещается на следующую строку, всякий раз, когда она видит строку screen_name, она восстанавливает эту строку, как $0 = $0 RS uid, где RS используется для получить новую линию.

0 голосов
/ 29 мая 2019

Это может сработать для вас (GNU sed):

sed '/userId:/{h;d};/screen_name:/G' file

Сохраните строку userId в области удержания и добавьте ее к строке screen_name.

N.B. Предполагается, что userId всегда предшествует строке screen_name.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...