文本处理,谁能帮我下。用shell实现。
-
- 帖子: 125
- 注册时间: 2007-10-22 22:40
文本处理,谁能帮我下。用shell实现。
以“--”为分界线
把以下文本输出3个独立的文件
“--”是分割符,2个“--”把文本分割成3个文件
shell实现
谢谢
scsi.type = 'cdrom' (string)
scsi.vendor = 'hp' (string)
udi = '/org/freedesktop/Hal/devices/storage_model_DVD_RAM_GH80N'
block.device = '/dev/sr0' (string)
block.is_volume = false (bool)
block.major = 11 (0xb) (int)
block.minor = 0 (0x0) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_model_DVD_RAM_GH80N' (string)
info.addons = {'hald-addon-storage'} (string list)
info.capabilities = {'storage', 'block', 'storage.cdrom'} (string list)
info.category = 'storage' (string)
info.interfaces = {'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage.Removable'} (string list)
info.parent = '/org/freedesktop/Hal/devices/pci_8086_2822_scsi_host_0_scsi_device_lun0' (string)
info.product = 'DVD-RAM GH80N' (string)
info.udi = '/org/freedesktop/Hal/devices/storage_model_DVD_RAM_GH80N' (string)
info.vendor = 'hp' (string)
linux.hotplug_type = 3 (0x3) (int)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1f.2/host2/target2:0:0/2:0:0:0/block/sr0' (string)
org.freedesktop.Hal.Device.Storage.method_argnames = {'extra_options', 'extra_options'} (string list)
org.freedesktop.Hal.Device.Storage.method_execpaths = {'hal-storage-eject', 'hal-storage-closetray'} (string list)
org.freedesktop.Hal.Device.Storage.method_names = {'Eject', 'CloseTray'} (string list)
org.freedesktop.Hal.Device.Storage.method_signatures = {'as', 'as'} (string list)
storage.automount_enabled_hint = true (bool)
storage.bus = 'pci' (string)
storage.cdrom.bd = false (bool)
storage.cdrom.bdr = false (bool)
storage.cdrom.bdre = false (bool)
storage.cdrom.cdr = true (bool)
storage.cdrom.cdrw = true (bool)
storage.cdrom.dvd = true (bool)
storage.cdrom.dvdplusr = true (bool)
storage.cdrom.dvdplusrdl = true (bool)
storage.cdrom.dvdplusrw = true (bool)
storage.cdrom.dvdplusrwdl = false (bool)
storage.cdrom.dvdr = true (bool)
storage.cdrom.dvdram = true (bool)
storage.cdrom.dvdrdl = true (bool)
storage.cdrom.dvdrw = true (bool)
storage.cdrom.hddvd = false (bool)
storage.cdrom.hddvdr = false (bool)
storage.cdrom.hddvdrw = false (bool)
storage.cdrom.mo = false (bool)
storage.cdrom.mrw = true (bool)
storage.cdrom.mrw_w = true (bool)
storage.cdrom.read_speed = 7056 (0x1b90) (int)
storage.cdrom.support_media_changed = true (bool)
storage.cdrom.support_multisession = true (bool)
storage.cdrom.write_speed = 7057 (0x1b91) (int)
storage.cdrom.write_speeds = {'7057', '7056', '5646', '5645', '4235', '4234', '2822', '1411', '706'} (string list)
storage.drive_type = 'cdrom' (string)
storage.firmware_version = 'RF01' (string)
storage.hotpluggable = false (bool)
storage.lun = 0 (0x0) (int)
storage.media_check_enabled = true (bool)
storage.model = 'DVD-RAM GH80N' (string)
storage.no_partitions_hint = true (bool)
storage.originating_device = '/org/freedesktop/Hal/devices/computer' (string)
storage.partitioning_scheme = '' (string)
storage.removable = true (bool)
storage.removable.media_available = false (bool)
storage.removable.support_async_notification = false (bool)
storage.requires_eject = true (bool)
storage.size = 0 (0x0) (uint64)
storage.vendor = 'hp' (string)
--
scsi.type = 'cdrom' (string)
scsi.vendor = 'TSSTcorp' (string)
udi = '/org/freedesktop/Hal/devices/storage_serial_TSSTcorp_CDDVDW_SE_S084F_R86XB57_0_0'
block.device = '/dev/sr2' (string)
block.is_volume = false (bool)
block.major = 11 (0xb) (int)
block.minor = 2 (0x2) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_TSSTcorp_CDDVDW_SE_S084F_R86XB57_0_0' (string)
info.addons = {'hald-addon-storage'} (string list)
info.capabilities = {'storage', 'block', 'storage.cdrom'} (string list)
info.category = 'storage' (string)
info.interfaces = {'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage.Removable'} (string list)
info.parent = '/org/freedesktop/Hal/devices/usb_device_e8d_1836_R86XB57_if0_scsi_host_0_scsi_device_lun0' (string)
info.product = 'CDDVDW SE-S084F' (string)
info.udi = '/org/freedesktop/Hal/devices/storage_serial_TSSTcorp_CDDVDW_SE_S084F_R86XB57_0_0' (string)
info.vendor = 'TSSTcorp' (string)
linux.hotplug_type = 3 (0x3) (int)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/host9/target9:0:0/9:0:0:0/block/sr2' (string)
org.freedesktop.Hal.Device.Storage.method_argnames = {'extra_options', 'extra_options'} (string list)
org.freedesktop.Hal.Device.Storage.method_execpaths = {'hal-storage-eject', 'hal-storage-closetray'} (string list)
org.freedesktop.Hal.Device.Storage.method_names = {'Eject', 'CloseTray'} (string list)
org.freedesktop.Hal.Device.Storage.method_signatures = {'as', 'as'} (string list)
storage.automount_enabled_hint = true (bool)
storage.bus = 'usb' (string)
storage.cdrom.bd = false (bool)
storage.cdrom.bdr = false (bool)
storage.cdrom.bdre = false (bool)
storage.cdrom.cdr = true (bool)
storage.cdrom.cdrw = true (bool)
storage.cdrom.dvd = true (bool)
storage.cdrom.dvdplusr = true (bool)
storage.cdrom.dvdplusrdl = true (bool)
storage.cdrom.dvdplusrw = true (bool)
storage.cdrom.dvdplusrwdl = false (bool)
storage.cdrom.dvdr = true (bool)
storage.cdrom.dvdram = true (bool)
storage.cdrom.dvdrdl = true (bool)
storage.cdrom.dvdrw = true (bool)
storage.cdrom.hddvd = false (bool)
storage.cdrom.hddvdr = false (bool)
storage.cdrom.hddvdrw = false (bool)
storage.cdrom.mo = false (bool)
storage.cdrom.mrw = true (bool)
storage.cdrom.mrw_w = true (bool)
storage.cdrom.read_speed = 4234 (0x108a) (int)
storage.cdrom.support_media_changed = true (bool)
storage.cdrom.support_multisession = true (bool)
storage.cdrom.write_speed = 0 (0x0) (int)
storage.cdrom.write_speeds = {} (string list)
storage.drive_type = 'cdrom' (string)
storage.firmware_version = 'TS00' (string)
storage.hotpluggable = true (bool)
storage.lun = 0 (0x0) (int)
storage.media_check_enabled = true (bool)
storage.model = 'CDDVDW SE-S084F' (string)
storage.no_partitions_hint = true (bool)
storage.originating_device = '/org/freedesktop/Hal/devices/usb_device_e8d_1836_R86XB57_if0' (string)
storage.partitioning_scheme = '' (string)
storage.removable = true (bool)
storage.removable.media_available = false (bool)
storage.removable.support_async_notification = false (bool)
storage.requires_eject = true (bool)
storage.serial = 'TSSTcorp_CDDVDW_SE-S084F_R86XB57-0:0' (string)
storage.size = 0 (0x0) (uint64)
storage.vendor = 'TSSTcorp' (string)
--
scsi.type = 'cdrom' (string)
scsi.vendor = 'MATSHITA' (string)
udi = '/org/freedesktop/Hal/devices/storage_serial_MATSHITA_DVD_ROM_SR_8178_0000000093_0_0'
block.device = '/dev/sr1' (string)
block.is_volume = false (bool)
block.major = 11 (0xb) (int)
block.minor = 1 (0x1) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_MATSHITA_DVD_ROM_SR_8178_0000000093_0_0' (string)
info.addons = {'hald-addon-storage'} (string list)
info.capabilities = {'storage', 'block', 'storage.cdrom'} (string list)
info.category = 'storage' (string)
info.interfaces = {'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage.Removable'} (string list)
info.parent = '/org/freedesktop/Hal/devices/usb_device_5e3_701_0000000093_if0_scsi_host_0_scsi_device_lun0' (string)
info.product = 'DVD-ROM SR-8178' (string)
info.udi = '/org/freedesktop/Hal/devices/storage_serial_MATSHITA_DVD_ROM_SR_8178_0000000093_0_0' (string)
info.vendor = 'MATSHITA' (string)
linux.hotplug_type = 3 (0x3) (int)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host8/target8:0:0/8:0:0:0/block/sr1' (string)
org.freedesktop.Hal.Device.Storage.method_argnames = {'extra_options', 'extra_options'} (string list)
org.freedesktop.Hal.Device.Storage.method_execpaths = {'hal-storage-eject', 'hal-storage-closetray'} (string list)
org.freedesktop.Hal.Device.Storage.method_names = {'Eject', 'CloseTray'} (string list)
org.freedesktop.Hal.Device.Storage.method_signatures = {'as', 'as'} (string list)
storage.automount_enabled_hint = true (bool)
storage.bus = 'usb' (string)
storage.cdrom.bd = false (bool)
storage.cdrom.bdr = false (bool)
storage.cdrom.bdre = false (bool)
storage.cdrom.cdr = false (bool)
storage.cdrom.cdrw = false (bool)
storage.cdrom.dvd = true (bool)
storage.cdrom.dvdplusr = false (bool)
storage.cdrom.dvdplusrdl = false (bool)
storage.cdrom.dvdplusrw = false (bool)
storage.cdrom.dvdplusrwdl = false (bool)
storage.cdrom.dvdr = false (bool)
storage.cdrom.dvdram = false (bool)
storage.cdrom.dvdrdl = false (bool)
storage.cdrom.dvdrw = false (bool)
storage.cdrom.hddvd = false (bool)
storage.cdrom.hddvdr = false (bool)
storage.cdrom.hddvdrw = false (bool)
storage.cdrom.mo = false (bool)
storage.cdrom.mrw = true (bool)
storage.cdrom.mrw_w = true (bool)
storage.cdrom.read_speed = 4224 (0x1080) (int)
storage.cdrom.support_media_changed = true (bool)
storage.cdrom.support_multisession = true (bool)
storage.cdrom.write_speed = 0 (0x0) (int)
storage.cdrom.write_speeds = {} (string list)
storage.drive_type = 'cdrom' (string)
storage.firmware_version = 'PZ16' (string)
storage.hotpluggable = true (bool)
storage.lun = 0 (0x0) (int)
storage.media_check_enabled = true (bool)
storage.model = 'DVD-ROM SR-8178' (string)
storage.no_partitions_hint = true (bool)
storage.originating_device = '/org/freedesktop/Hal/devices/usb_device_5e3_701_0000000093_if0' (string)
storage.partitioning_scheme = '' (string)
storage.removable = true (bool)
storage.removable.media_available = false (bool)
storage.removable.support_async_notification = false (bool)
storage.requires_eject = true (bool)
storage.serial = 'MATSHITA_DVD-ROM_SR-8178_0000000093-0:0' (string)
storage.size = 0 (0x0) (uint64)
storage.vendor = 'MATSHITA' (string)
把以下文本输出3个独立的文件
“--”是分割符,2个“--”把文本分割成3个文件
shell实现
谢谢
scsi.type = 'cdrom' (string)
scsi.vendor = 'hp' (string)
udi = '/org/freedesktop/Hal/devices/storage_model_DVD_RAM_GH80N'
block.device = '/dev/sr0' (string)
block.is_volume = false (bool)
block.major = 11 (0xb) (int)
block.minor = 0 (0x0) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_model_DVD_RAM_GH80N' (string)
info.addons = {'hald-addon-storage'} (string list)
info.capabilities = {'storage', 'block', 'storage.cdrom'} (string list)
info.category = 'storage' (string)
info.interfaces = {'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage.Removable'} (string list)
info.parent = '/org/freedesktop/Hal/devices/pci_8086_2822_scsi_host_0_scsi_device_lun0' (string)
info.product = 'DVD-RAM GH80N' (string)
info.udi = '/org/freedesktop/Hal/devices/storage_model_DVD_RAM_GH80N' (string)
info.vendor = 'hp' (string)
linux.hotplug_type = 3 (0x3) (int)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1f.2/host2/target2:0:0/2:0:0:0/block/sr0' (string)
org.freedesktop.Hal.Device.Storage.method_argnames = {'extra_options', 'extra_options'} (string list)
org.freedesktop.Hal.Device.Storage.method_execpaths = {'hal-storage-eject', 'hal-storage-closetray'} (string list)
org.freedesktop.Hal.Device.Storage.method_names = {'Eject', 'CloseTray'} (string list)
org.freedesktop.Hal.Device.Storage.method_signatures = {'as', 'as'} (string list)
storage.automount_enabled_hint = true (bool)
storage.bus = 'pci' (string)
storage.cdrom.bd = false (bool)
storage.cdrom.bdr = false (bool)
storage.cdrom.bdre = false (bool)
storage.cdrom.cdr = true (bool)
storage.cdrom.cdrw = true (bool)
storage.cdrom.dvd = true (bool)
storage.cdrom.dvdplusr = true (bool)
storage.cdrom.dvdplusrdl = true (bool)
storage.cdrom.dvdplusrw = true (bool)
storage.cdrom.dvdplusrwdl = false (bool)
storage.cdrom.dvdr = true (bool)
storage.cdrom.dvdram = true (bool)
storage.cdrom.dvdrdl = true (bool)
storage.cdrom.dvdrw = true (bool)
storage.cdrom.hddvd = false (bool)
storage.cdrom.hddvdr = false (bool)
storage.cdrom.hddvdrw = false (bool)
storage.cdrom.mo = false (bool)
storage.cdrom.mrw = true (bool)
storage.cdrom.mrw_w = true (bool)
storage.cdrom.read_speed = 7056 (0x1b90) (int)
storage.cdrom.support_media_changed = true (bool)
storage.cdrom.support_multisession = true (bool)
storage.cdrom.write_speed = 7057 (0x1b91) (int)
storage.cdrom.write_speeds = {'7057', '7056', '5646', '5645', '4235', '4234', '2822', '1411', '706'} (string list)
storage.drive_type = 'cdrom' (string)
storage.firmware_version = 'RF01' (string)
storage.hotpluggable = false (bool)
storage.lun = 0 (0x0) (int)
storage.media_check_enabled = true (bool)
storage.model = 'DVD-RAM GH80N' (string)
storage.no_partitions_hint = true (bool)
storage.originating_device = '/org/freedesktop/Hal/devices/computer' (string)
storage.partitioning_scheme = '' (string)
storage.removable = true (bool)
storage.removable.media_available = false (bool)
storage.removable.support_async_notification = false (bool)
storage.requires_eject = true (bool)
storage.size = 0 (0x0) (uint64)
storage.vendor = 'hp' (string)
--
scsi.type = 'cdrom' (string)
scsi.vendor = 'TSSTcorp' (string)
udi = '/org/freedesktop/Hal/devices/storage_serial_TSSTcorp_CDDVDW_SE_S084F_R86XB57_0_0'
block.device = '/dev/sr2' (string)
block.is_volume = false (bool)
block.major = 11 (0xb) (int)
block.minor = 2 (0x2) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_TSSTcorp_CDDVDW_SE_S084F_R86XB57_0_0' (string)
info.addons = {'hald-addon-storage'} (string list)
info.capabilities = {'storage', 'block', 'storage.cdrom'} (string list)
info.category = 'storage' (string)
info.interfaces = {'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage.Removable'} (string list)
info.parent = '/org/freedesktop/Hal/devices/usb_device_e8d_1836_R86XB57_if0_scsi_host_0_scsi_device_lun0' (string)
info.product = 'CDDVDW SE-S084F' (string)
info.udi = '/org/freedesktop/Hal/devices/storage_serial_TSSTcorp_CDDVDW_SE_S084F_R86XB57_0_0' (string)
info.vendor = 'TSSTcorp' (string)
linux.hotplug_type = 3 (0x3) (int)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/host9/target9:0:0/9:0:0:0/block/sr2' (string)
org.freedesktop.Hal.Device.Storage.method_argnames = {'extra_options', 'extra_options'} (string list)
org.freedesktop.Hal.Device.Storage.method_execpaths = {'hal-storage-eject', 'hal-storage-closetray'} (string list)
org.freedesktop.Hal.Device.Storage.method_names = {'Eject', 'CloseTray'} (string list)
org.freedesktop.Hal.Device.Storage.method_signatures = {'as', 'as'} (string list)
storage.automount_enabled_hint = true (bool)
storage.bus = 'usb' (string)
storage.cdrom.bd = false (bool)
storage.cdrom.bdr = false (bool)
storage.cdrom.bdre = false (bool)
storage.cdrom.cdr = true (bool)
storage.cdrom.cdrw = true (bool)
storage.cdrom.dvd = true (bool)
storage.cdrom.dvdplusr = true (bool)
storage.cdrom.dvdplusrdl = true (bool)
storage.cdrom.dvdplusrw = true (bool)
storage.cdrom.dvdplusrwdl = false (bool)
storage.cdrom.dvdr = true (bool)
storage.cdrom.dvdram = true (bool)
storage.cdrom.dvdrdl = true (bool)
storage.cdrom.dvdrw = true (bool)
storage.cdrom.hddvd = false (bool)
storage.cdrom.hddvdr = false (bool)
storage.cdrom.hddvdrw = false (bool)
storage.cdrom.mo = false (bool)
storage.cdrom.mrw = true (bool)
storage.cdrom.mrw_w = true (bool)
storage.cdrom.read_speed = 4234 (0x108a) (int)
storage.cdrom.support_media_changed = true (bool)
storage.cdrom.support_multisession = true (bool)
storage.cdrom.write_speed = 0 (0x0) (int)
storage.cdrom.write_speeds = {} (string list)
storage.drive_type = 'cdrom' (string)
storage.firmware_version = 'TS00' (string)
storage.hotpluggable = true (bool)
storage.lun = 0 (0x0) (int)
storage.media_check_enabled = true (bool)
storage.model = 'CDDVDW SE-S084F' (string)
storage.no_partitions_hint = true (bool)
storage.originating_device = '/org/freedesktop/Hal/devices/usb_device_e8d_1836_R86XB57_if0' (string)
storage.partitioning_scheme = '' (string)
storage.removable = true (bool)
storage.removable.media_available = false (bool)
storage.removable.support_async_notification = false (bool)
storage.requires_eject = true (bool)
storage.serial = 'TSSTcorp_CDDVDW_SE-S084F_R86XB57-0:0' (string)
storage.size = 0 (0x0) (uint64)
storage.vendor = 'TSSTcorp' (string)
--
scsi.type = 'cdrom' (string)
scsi.vendor = 'MATSHITA' (string)
udi = '/org/freedesktop/Hal/devices/storage_serial_MATSHITA_DVD_ROM_SR_8178_0000000093_0_0'
block.device = '/dev/sr1' (string)
block.is_volume = false (bool)
block.major = 11 (0xb) (int)
block.minor = 1 (0x1) (int)
block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_MATSHITA_DVD_ROM_SR_8178_0000000093_0_0' (string)
info.addons = {'hald-addon-storage'} (string list)
info.capabilities = {'storage', 'block', 'storage.cdrom'} (string list)
info.category = 'storage' (string)
info.interfaces = {'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage.Removable'} (string list)
info.parent = '/org/freedesktop/Hal/devices/usb_device_5e3_701_0000000093_if0_scsi_host_0_scsi_device_lun0' (string)
info.product = 'DVD-ROM SR-8178' (string)
info.udi = '/org/freedesktop/Hal/devices/storage_serial_MATSHITA_DVD_ROM_SR_8178_0000000093_0_0' (string)
info.vendor = 'MATSHITA' (string)
linux.hotplug_type = 3 (0x3) (int)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host8/target8:0:0/8:0:0:0/block/sr1' (string)
org.freedesktop.Hal.Device.Storage.method_argnames = {'extra_options', 'extra_options'} (string list)
org.freedesktop.Hal.Device.Storage.method_execpaths = {'hal-storage-eject', 'hal-storage-closetray'} (string list)
org.freedesktop.Hal.Device.Storage.method_names = {'Eject', 'CloseTray'} (string list)
org.freedesktop.Hal.Device.Storage.method_signatures = {'as', 'as'} (string list)
storage.automount_enabled_hint = true (bool)
storage.bus = 'usb' (string)
storage.cdrom.bd = false (bool)
storage.cdrom.bdr = false (bool)
storage.cdrom.bdre = false (bool)
storage.cdrom.cdr = false (bool)
storage.cdrom.cdrw = false (bool)
storage.cdrom.dvd = true (bool)
storage.cdrom.dvdplusr = false (bool)
storage.cdrom.dvdplusrdl = false (bool)
storage.cdrom.dvdplusrw = false (bool)
storage.cdrom.dvdplusrwdl = false (bool)
storage.cdrom.dvdr = false (bool)
storage.cdrom.dvdram = false (bool)
storage.cdrom.dvdrdl = false (bool)
storage.cdrom.dvdrw = false (bool)
storage.cdrom.hddvd = false (bool)
storage.cdrom.hddvdr = false (bool)
storage.cdrom.hddvdrw = false (bool)
storage.cdrom.mo = false (bool)
storage.cdrom.mrw = true (bool)
storage.cdrom.mrw_w = true (bool)
storage.cdrom.read_speed = 4224 (0x1080) (int)
storage.cdrom.support_media_changed = true (bool)
storage.cdrom.support_multisession = true (bool)
storage.cdrom.write_speed = 0 (0x0) (int)
storage.cdrom.write_speeds = {} (string list)
storage.drive_type = 'cdrom' (string)
storage.firmware_version = 'PZ16' (string)
storage.hotpluggable = true (bool)
storage.lun = 0 (0x0) (int)
storage.media_check_enabled = true (bool)
storage.model = 'DVD-ROM SR-8178' (string)
storage.no_partitions_hint = true (bool)
storage.originating_device = '/org/freedesktop/Hal/devices/usb_device_5e3_701_0000000093_if0' (string)
storage.partitioning_scheme = '' (string)
storage.removable = true (bool)
storage.removable.media_available = false (bool)
storage.removable.support_async_notification = false (bool)
storage.requires_eject = true (bool)
storage.serial = 'MATSHITA_DVD-ROM_SR-8178_0000000093-0:0' (string)
storage.size = 0 (0x0) (uint64)
storage.vendor = 'MATSHITA' (string)
- 枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
- 联系:
Re: 文本处理,谁能帮我下。用shell实现。
用python比较好写,恩恩。bash不会。。。
- qy117121
- 论坛版主
- 帖子: 50587
- 注册时间: 2007-12-14 13:40
- 系统: Winbuntu
- 来自: 志虚国乌由市
- 联系:
- xyy_xx
- 帖子: 344
- 注册时间: 2008-09-17 13:37
- 系统: arch|centos
Re: 文本处理,谁能帮我下。用shell实现。
awk -F 结合管道 可以办到
拥有书籍并不表示拥有知识;拥有知识并不表示拥有技能;拥有技能并不表示拥有文化;拥有文化并不表示拥有智慧
渣浪:@CodewalkerDotMe
推特:@codewalkertse
博客:http://codewalker.me/
渣浪:@CodewalkerDotMe
推特:@codewalkertse
博客:http://codewalker.me/
-
- 帖子: 19
- 注册时间: 2012-02-13 10:58
Re: 文本处理,谁能帮我下。用shell实现。
sed -n '1,/--/p' filename | sed '/--/d' > file1
sed -n '/--/,/--/p' filename | sed '/--/d' > file2
sed '1,/--/d' filename | sed '1,/--/d' > file3
sed -n '/--/,/--/p' filename | sed '/--/d' > file2
sed '1,/--/d' filename | sed '1,/--/d' > file3
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: 文本处理,谁能帮我下。用shell实现。
awk
awk -F'Section' 'BEGIN{RS = ""} /.*\"Screen\"/ ' /etc/X11/xorg.conf
你这类似。
awk -F'Section' 'BEGIN{RS = ""} /.*\"Screen\"/ ' /etc/X11/xorg.conf
你这类似。
● 鸣学
-
- 帖子: 125
- 注册时间: 2007-10-22 22:40
Re: 文本处理,谁能帮我下。用shell实现。
这个是我用shell写的 sed awk还不熟悉
lshal | grep -A65 "scsi.type = 'cdrom'" | sed '/^$/d'> $TEMP/lshal_cdrom.$$
while read LINE
do
echo "$LINE" >> $TEMP/lshal_cdrom$NUMBER.$$
if [ "$LINE" = "--" ]
then
NUMBER=`expr $NUMBER - 1 | bc`
fi
done < $TEMP/lshal_cdrom.$$
lshal | grep -A65 "scsi.type = 'cdrom'" | sed '/^$/d'> $TEMP/lshal_cdrom.$$
while read LINE
do
echo "$LINE" >> $TEMP/lshal_cdrom$NUMBER.$$
if [ "$LINE" = "--" ]
then
NUMBER=`expr $NUMBER - 1 | bc`
fi
done < $TEMP/lshal_cdrom.$$
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 文本处理,谁能帮我下。用shell实现。
代码: 全选
csplit file '/--/' '{*}'
- xyy_xx
- 帖子: 344
- 注册时间: 2008-09-17 13:37
- 系统: arch|centos
Re: 文本处理,谁能帮我下。用shell实现。
代码: 全选
sed -e '/^$/d' yourfile|awk -F "--" 'BEGIN{RS=""} { for (i=1; i<=NF; i++) print $i>i }'
拥有书籍并不表示拥有知识;拥有知识并不表示拥有技能;拥有技能并不表示拥有文化;拥有文化并不表示拥有智慧
渣浪:@CodewalkerDotMe
推特:@codewalkertse
博客:http://codewalker.me/
渣浪:@CodewalkerDotMe
推特:@codewalkertse
博客:http://codewalker.me/
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 文本处理,谁能帮我下。用shell实现。
如果不包括分割行:
awk -v n=1 '/^--$/{n++;next};{print $0>>n".txt"}' file
awk -v n=1 '/^--$/{n++;next};{print $0>>n".txt"}' file
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 19
- 注册时间: 2012-02-13 10:58
Re: 文本处理,谁能帮我下。用shell实现。
不错,之前不知道还有这个,看你发贴总能学到东西aerofox 写了:代码: 全选
csplit file '/--/' '{*}'
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
Re: 文本处理,谁能帮我下。用shell实现。
代码: 全选
for n, l in enumerate(open('file').read().split('--')): open('%s.txt' %n, 'w').write(l)
-
- 帖子: 125
- 注册时间: 2007-10-22 22:40
Re: 文本处理,谁能帮我下。用shell实现。
谢谢大家啊 我也学到了啊
特别感谢aerofox那个命令 很好
特别感谢aerofox那个命令 很好
-
- 帖子: 34
- 注册时间: 2007-08-10 22:30
Re: 文本处理,谁能帮我下。用shell实现。
csplit 原来还有这等神器,学习了~
Usage: csplit [OPTION]... FILE PATTERN...
Output pieces of FILE separated by PATTERN(s) to files `xx00', `xx01', ...,
and output byte counts of each piece to standard output.
Mandatory arguments to long options are mandatory for short options too.
-b, --suffix-format=FORMAT use sprintf FORMAT instead of %02d
-f, --prefix=PREFIX use PREFIX instead of `xx'
-k, --keep-files do not remove output files on errors
-n, --digits=DIGITS use specified number of digits instead of 2
-s, --quiet, --silent do not print counts of output file sizes
-z, --elide-empty-files remove empty output files
--help display this help and exit
--version output version information and exit
Read standard input if FILE is -. Each PATTERN may be:
INTEGER copy up to but not including specified line number
/REGEXP/[OFFSET] copy up to but not including a matching line
%REGEXP%[OFFSET] skip to, but not including a matching line
{INTEGER} repeat the previous pattern specified number of times
{*} repeat the previous pattern as many times as possible