我正在尝试转换
<id>1</id>
<Name>ENTERPRISE RESOURCE PLANNING</Name>
Run Code Online (Sandbox Code Playgroud)
到:
<column name="id">1</column>
<column name="Name">ENTERPRISE RESOURCE PLANNING</column>
Run Code Online (Sandbox Code Playgroud)
我假设这项工作的最佳工具是sed,但是我无法弄清楚如何将原始文本的一部分保留在替换部分中。
如果我做:
$ sed -i 's/<.*>.*<.*>/<column name="\\1">\\2<\/column>/g' filename.xml
Run Code Online (Sandbox Code Playgroud)
输出是:
<column name="\1">\2</column>
<column name="\1">\2</column>
Run Code Online (Sandbox Code Playgroud)
或者从 inside 做类似的事情vi,它输出:
<column name=""></column>
<column name=""></column>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点,\1并被\2替换回它们的原始值?
尝试以特定用户 ( adventho)访问某个目录中的任何文件时,我遇到了一个非常奇怪的权限问题。这几个月一直工作正常,我最近才注意到我收到了这些错误,并且我有一段时间没有更改系统中的任何内容。这是尝试以用户身份访问任何文件时发生的情况:
# su adventho
adventho@snail:/root
$ stat /home/adventho/public_html/hotelimg/187-1-1403380618.jpg
stat: cannot stat `/home/adventho/public_html/hotelimg/187-1-1403380618.jpg': Permission denied
Run Code Online (Sandbox Code Playgroud)
但是我可以以 root 身份访问它:
root@snail:~# stat /home/adventho/public_html/hotelimg/187-1-1403380618.jpg
File: `/home/adventho/public_html/hotelimg/187-1-1403380618.jpg'
Size: 528535 Blocks: 1040 IO Block: 4096 regular file
Device: 906h/2310d Inode: 918000 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1030/adventho) Gid: ( 1008/adventho)
Access: 2014-12-15 17:23:44.318374774 -0500
Modify: 2014-06-21 15:56:58.000000000 -0400
Change: 2014-10-23 16:44:57.502377342 -0400
Birth: -
Run Code Online (Sandbox Code Playgroud)
事实上,ls -la在目录上做一个会产生一堆“?” 在输出中,即使对于.和..:
d????????? ? ? ? ? ? .
d????????? ? …Run Code Online (Sandbox Code Playgroud)