34

我想将此命令保存到另一个文本: awk '{print $2}' 它从文本中提取。现在我也想保存输出另一个文本。谢谢

4

3 回答 3

47
awk '{ print $2 }' text.txt > outputfile.txt

>=> 这将重定向STDOUT到一个文件。如果文件不存在,它将创建它。如果文件存在,它将清除(有效)内容并将新数据写入其中

>>=> 这意味着与上面相同,但如果文件存在,这将向其追加新数据。

例如:

$ cat /etc/passwd | awk -F: '{ print $1 }' | tail -10 > output.txt
$ cat output.txt 
_warmd
_dovenull
_netstatistics
_avbdeviced
_krb_krbtgt
_krb_kadmin
_krb_changepw
_krb_kerberos
_krb_anonymous
_assetcache

或者,您可以使用该命令tee进行重定向。该命令tee将重定向STDOUT到指定文件以及终端屏幕

有关 shell 重定向的更多信息,请转到以下链接:

http://www.techtrunch.com/scripting/redirections-and-file-descriptors

于 2013-02-02T08:32:59.490 回答
17

有一种方法可以从 awk 本身(文档)中做到这一点

➜ cat text.txt
line 1
line 2
line three
line 4 4 4

➜ awk '{print $2}' text.txt
1
2
three
4

➜ awk '{print $2 >"text.out"}' text.txt

➜ cat text.out
1
2
three
4
于 2019-01-14T21:48:10.063 回答
0

试试这个命令。

cat ORGFILENAME.TXT | awk '{print $2}' > SAVENAME.TXT

谢谢。

于 2020-04-06T00:35:44.760 回答