是否可以做这样的事情:
$ cat foo.txt
1 2 3 4
foo bar baz
hello world
$ awk '{ for(i in $){ print $[i]; } }' foo.txt
1
2
3
4
foo
bar
baz
hello
world
我知道你可以这样做:
$ awk '{ split($0,array," "); for(i in array){ print array[i]; } }' foo.txt
2
3
4
1
bar
baz
foo
world
hello
但结果不合适。
答案 0 :(得分:55)
发现自己:
$ awk '{ for(i = 1; i <= NF; i++) { print $i; } }' foo.txt
答案 1 :(得分:1)
我使用sed:
sed 's/\ /\n/g' foo.txt
答案 2 :(得分:1)
无需const staleWhileRevalidate = workboxSW.strategies.staleWhileRevalidate({
plugins: [...],
});
const cachingStrategy = async (params) => {
const response = await staleWhileRevalidate(params);
// Do something to response, like get its body, modify it,
// and create a new response with the updated body.
const modifiedResponse = modify(response);
return modifiedResponse;
};
workboxSW.router.registerRoute(
new RegExp('\/(.*)/suffix/?$'),
cachingStrategy
);
,awk
或sed
。您可以直接在shell中轻松完成此操作:
perl
答案 3 :(得分:-1)
如果您打开使用Perl,其中任何一个都可以解决问题:
perl -lane 'print $_ for @F' foo.txt
perl -lane 'print join "\n",@F' foo.txt
使用以下命令行选项:
-n
循环输入文件的每一行,不自动打印行-l
在处理之前删除换行符,然后将其添加回来-a
autosplit模式 - 将输入行拆分为@F
数组。默认为在空格上拆分。 -e
执行perl代码