Ann*_*met 15 command-line text-processing
我有一个包含多个.txt文件的目录。
从这些文件中的每一个中,我想选择第一行并将其打印到一个新.txt文件中(以获取所有第一行的列表)。
我尝试使用awkandsed命令并将其与循环结合使用,但没有成功。
cho*_*oba 26
使用head:
head -n1 -q *.txt > new-file
Run Code Online (Sandbox Code Playgroud)
-n1告诉head只提取第一行。-q 告诉 head 不要打印文件名。在 OS X(可能还有其他一些 *nix 变体)上,该-q选项不受head. 您需要自己删除文件名,例如
head -n1 *.txt | grep -v '==> ' > new-file
Run Code Online (Sandbox Code Playgroud)
这仅在您知道输出不应包含==> 字符串时才有效。绝对确定,使用循环(这将比只运行head一次慢得多):
for file in *.txt ; do
head -n1 "$file"
done
Run Code Online (Sandbox Code Playgroud)
使用grep:
grep -m 1 '.' *.txt >output.file
Run Code Online (Sandbox Code Playgroud)
grep将匹配任何字符并在第一次匹配后退出,即grep输出所有输入文件的第一行,我们将它们保存在out.txt.