Skip to main content

Extracting a single field from a very long json file

Trivial task, but still can save some time to somebody, so I am gladly sharing.
A friend of a mine has an huge json file, and she had to extract all unique value for a field called "title".  The file was too big to be processed from a notepad or an excel.

With those comands, I was able to obtain a clean, unique and sorted list list of all the content.


grep -o -E '"title":"[^"]+",' tmp.json | sort |uniq > output.txt

sed -i 's/"title":"//g' output.txt

sed -i 's/",//g' output.txt


Comments

Unknown said…
You can do the same with just one command:
sed -n "s/^.*\"title\":\"\([^\"]*\)\",.*/\1/p" tmp.json | uniq | sort > output.txt

Popular posts from this blog

Multiple controllers with Spring Boot

Remember, when you want to have multiple controllers with Spring Boot, you should always name them differently in the annotation, otherwise they will not work So these two together will NOT work (or just one of them will work) These two instead WILL work.

WASService.sh and ulimit.... a tricky combo

From version 7 onward, the Application Server scripts and configuration scripts have the good manner to set by themselves the right ulimit valu. So ulimit is now less a problem than it was before. The problem is that, sometime when dealing with linux services,things do not always get right. For example you get exceptions such as [11/14/13 12:06:15:483 CET] 00000066 exception     E com.ibm.ws.wim.adapter.ldap.LdapAdapter authenticateWithPassword                                  com.ibm.websphere.wim.exception.WIMSystemException: CWWIM4520E  The 'javax.naming.CommunicationException: ldapus.ldap.domain.com:389 [Root exception is java.net.SocketException: Too many open files]' naming exception occurred during processing. (In case you are asking, yes, network connections are counted as open files) That's why I strongly suggest to modify your /etc/security/limits.conf (on RedHat) bef...