Bin*_*ics 20 linux bash shell text
我想将每一行放在引号内,例如:
abcdefg
hijklmn
opqrst
Run Code Online (Sandbox Code Playgroud)
转换成:
"abcdefg"
"hijklmn"
"opqrst"
Run Code Online (Sandbox Code Playgroud)
如何在Bash shell脚本中执行此操作?
blu*_*lue 31
使用awk
awk '{ print "\""$0"\""}' inputfile
Run Code Online (Sandbox Code Playgroud)
使用纯粹的bash
while read FOO; do
echo -e "\"$FOO\""
done < inputfile
Run Code Online (Sandbox Code Playgroud)
哪里inputfile
是包含没有引号的行的文件.
如果你的文件有空行,awk肯定是要走的路:
awk 'NF { print "\""$0"\""}' inputfile
Run Code Online (Sandbox Code Playgroud)
NF
告诉awk
只有当字段数大于零(行不为空)时才执行print命令.
0zk*_* PM 10
我使用以下命令:
xargs -I{lin} echo \"{lin}\" < your_filename
Run Code Online (Sandbox Code Playgroud)
该xargs
取标准输入(从文件重定向),并通过一个线时间{lin}
占位符,然后执行命令在明年,在这种情况下,echo
有逃脱双引号.
您可以使用-i
xargs选项省略占位符的名称,如下所示:
xargs -i echo \"{}\" < your_filename
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,您的IFS必须是默认值或'\n'
至少是.
使用sed:
sed -e 's/^\|$/"/g' file
Run Code Online (Sandbox Code Playgroud)
如果文件包含空行,则需要更多工作.
这个sed也适用于忽略空行:
sed -i.bak 's/^..*$/"&"/' inFile
Run Code Online (Sandbox Code Playgroud)
要么
sed 's/^.\{1,\}$/"&"/' inFile
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20789 次 |
最近记录: |