|
我承认我有病,在钻牛角尖。我知道我在做蠢事,所以不要问我做什么,我现在睡不着,就是这样……
1.
- secludedsage@secludedsage-laptop:/home/secludedsage$ echo "sds" > 1.txt
- secludedsage@secludedsage-laptop:/home/secludedsage$ cat 1.txt
- sds
- secludedsage@secludedsage-laptop:/home/secludedsage$ sed "s/d/\/home\/secludedsage/g" < 1.txt
- s/home/secludedsages
- secludedsage@secludedsage-laptop:/home/secludedsage$ sed "s/d/${PWD}/g" 1.txt
- sed: -e expression #1, char 6: unknown option to `s'
- secludedsage@secludedsage-laptop:/home/secludedsage$ echo $PWD
- /home/secludedsage
- secludedsage@secludedsage-laptop:/home/secludedsage$ sed "s/d/${PWD//\//\\\/}/g" 1.txt
- sed: -e expression #1, char 8: unknown option to `s'
- secludedsage@secludedsage-laptop:/home/secludedsage$ echo ${PWD//\//\\\/}
- \/home\/secludedsage
复制代码
完全一样就是换不了……
另外就是awk的一个小问题:
- secludedsage@secludedsage-laptop:/home/secludedsage$ mkdir s\\\\d
- secludedsage@secludedsage-laptop:/home/secludedsage$ cd s\\\\d
- secludedsage@secludedsage-laptop:/home/secludedsage/s\\d$ echo "1" > 1.txt
- secludedsage@secludedsage-laptop:/home/secludedsage/s\\d$ awk -v PWD=$PWD '{print PWD}' 1.txt
- /home/secludedsage/s\d
- secludedsage@secludedsage-laptop:/home/secludedsage/s\\d$ echo $PWD
- /home/secludedsage/s\\d
复制代码
显然两个不一样。一个是s\d一个是s\\d。
后面的我能想到的办法就是 PWD=${PWD//\\/\\\\}。但是太长了,不知道有没有好点的办法。前面的sed还真不知道为什么。
依然谢谢大家的回答。 |
|