Jump to content

Some applescript help please


2 posts in this topic

Recommended Posts

OK I have this plist here:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
	<key>@0,compatible</key>
	<string>NVDA,NVMac</string>
	<key>@0,device_type</key>
	<string>display</string>
	<key>@0,name</key>
	<string>NVDA,Display-A</string>
	<key>@1,compatible</key>
	<string>NVDA,NVMac</string>
	<key>@1,device_type</key>
	<string>display</string>
	<key>@1,name</key>
	<string>NVDA,Display-B</string>
	<key>@2,#adress-cells</key>
	<string>0x01000000</string>
	<key>@2,#size-cells</key>
	<string>0x00000000</string>
	<key>@2,compatible</key>
	<string>NVDA,sensor-parent</string>
	<key>@2,device_type</key>
	<string>NVDA,gpu-diode</string>
	<key>@2,hwctrl-params-version</key>
	<string>0x02000000</string>
	<key>@2,hwsensor-params-version</key>
	<string>0x02000000</string>
	<key>@2,name</key>
	<string>sensor-parent</string>
	<key>@2,reg</key>
	<string>0x02000000</string>
	<key>NVCAP</key>
	<data>
	BAAAAAAAAwAMAAAAAAAABwAAAAA=
	</data>
	<key>NVPM</key>
	<data>
	AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
	</data>
	<key>device_type</key>
	<string>NVDA,GeForce</string>
	<key>model</key>
	<string>NVIDIA GeForce 7600 GS EFI</string>
	<key>name</key>
	<string>NVDA,Parent</string>
	<key>rom-revision</key>
	<string>0x32323033</string>
</dict>
</dict>
</plist>

 

How would I use AppleScript to replace the "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)" key with "PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)"?

 

Thanks

Link to comment
Share on other sites

  • 8 months later...

You can "do shell script" and use sed or awk to find/replace. The only problem is that they can be picky with special characters like ( ) or / (which you have... lol). Most of the time you can get around it by putting a \ in front of them. Here's a couple of things to try:

 

If you want to do it with a single line, try:

echo "My source string" | awk '{ gsub("source", "new"); print $1 }'

 

or by an entire file (which is what I think you want to do):

sed 's/findthis/replacewiththis/g' 'source file'

 

You kinda have to play around with it. I used the sed method to do a find and replace of /etc/hostconfig to disable spotlight as a post-restoration script for older G3 iMacs. Just remember to respect reserved unix characters like a \ would be written as a \\ or a return would be \n (think C++ or printf with PHP).

 

Good luck, hope this helps!

Link to comment
Share on other sites

 Share

×
×
  • Create New...