我想用这个:
perl -pi -e 's/^(.*)$/\"$1\",/g' /path/to/your/file
Run Code Online (Sandbox Code Playgroud)
用于在文本文件中的每一行的末尾添加"在行的开头".问题是有些线条只是空行,我不希望这些行被改变.任何想法如何修改上面的代码或可能完全不同的做法?
其他人已经回答了正则表达式语法问题,让我们来看看这种风格.
s/^(.*)$/\"$1\",/g
Run Code Online (Sandbox Code Playgroud)
这个正则表达式患有"倾斜牙签综合症",///让你的大脑出血.
s{^ (.+) $}{ "$1", }x;
Run Code Online (Sandbox Code Playgroud)
使用平衡分隔符,/ x修饰符来消除不必要的后退,使得正则表达式更容易阅读.此外,/ g是不必要的,因为这个正则表达式每行只会匹配一次.
perl -pi -e 's/^(.+)$/\"$1\",/g' /your/file
Run Code Online (Sandbox Code Playgroud)
.*匹配0个或更多字符; .+匹配1个或更多.
您可能还希望替换.+with .*\S.*以确保仅引用包含非空白字符的行.