对于以下代码的每个实例(有很多实例),我需要将“ 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,
},
答案 0 :(得分:1)
要翻转user_id和屏幕名称的行:
awk '/userId:/{uid=$0;next}/screen_name/{$0 = $0 RS uid}1' input
这是将包含字符串userId:
的行存储到变量uid
中,并移至下一行,只要看到字符串screen_name
,它将像{{1} },其中$0 = $0 RS uid
用于获取新行。
答案 1 :(得分:0)
这可能对您有用(GNU sed):
sed '/userId:/{h;d};/screen_name:/G' file
将userId
行保存在保留空间中,并将其附加到screen_name
行中。
假设userId
总是在screen_name
行之前。