我有一个文件,每行应该包含200个字符.我收到了一个源文件,每行只有100个字符.我现在需要为每一行添加100个额外的空格.如果空格很少,我们可以使用sed,如:
sed 's/$/ /' filename > newfilename
Run Code Online (Sandbox Code Playgroud)
由于它是100个空格,任何人都可以告诉我是否可以在Unix中添加?
如果您希望每行固定n个字符(不相信输入文件每行确切有m个字符),请按照以下步骤操作。对于每行字符数不同的输入文件:
$ cat file
1
12
123
1234
12345
Run Code Online (Sandbox Code Playgroud)
扩展到每行10个字符。
$ awk '{printf "%-10s\n", $0}' file | cat -e
1 $
12 $
123 $
1234 $
12345 $
Run Code Online (Sandbox Code Playgroud)
显然在脚本中将10更改为200。这里$显示了行尾,它不是字符。您不需要cat -e,这里只是显示行已扩展。
根据格伦的建议更新
格伦在评论中建议,替换是不必要的,您只需添加空格即可 - 不过,进一步考虑该逻辑,您甚至不需要添加,您可以在say原始行之后添加空格。
perl -nlE 'say $_," "x100' file
Run Code Online (Sandbox Code Playgroud)
原答案
使用 Perl:
perl -pe 's/$/" " x 100/e' file
Run Code Online (Sandbox Code Playgroud)
这就是说... “将 ( s) 每行 ( ) 的末尾替换为100 次空格重复的$计算表达式 (e )” 。
如果您想将所有行填充到 200 个字符,即使输入文件参差不齐(所有行的长度不同),您可以使用如下内容:
perl -pe '$pad=200-length;s/$/" " x $pad/e'
Run Code Online (Sandbox Code Playgroud)
这将组成 83、102 和 197 个字符的行,每行 200 个字符。