Bash 如何使用shell脚本在空白字符串之前获取第一个字符串?

Bash 如何使用shell脚本在空白字符串之前获取第一个字符串?,bash,shell,awk,sed,Bash,Shell,Awk,Sed,我有字符串列表 Facades core/app/Firstmedia/Facades/FmSettingFacades.php core/app/Firstmedia/FmSettingFacades.php core/app/Http/Controllers/Frontpage/ContentController.php core/app/Http/Controllers/Frontpage/HomeController.php core/app/Http/Controllers/Front

我有字符串列表

Facades core/app/Firstmedia/Facades/FmSettingFacades.php
core/app/Firstmedia/FmSettingFacades.php
core/app/Http/Controllers/Frontpage/ContentController.php
core/app/Http/Controllers/Frontpage/HomeController.php
core/app/Http/Controllers/Frontpage/OTPController.php
core/resources/views/admin/pages/solution/form.blade.php
core/resources/views/frontpage/pages/content.blade.php
core/routes/web.php
backend core/resources/views/backend/pages/content.blade.php

我只想在空白字符串之前得到第一个字符串

预期产出:

Facades
backend
我试试这个代码

#!/bin/bash
filename='copy.md'
n=1
tanggal=$(date +%d-%m-%Y)
tanggalWaktu=$(date +"%d-%m-%Y %H:%M:%S")
rm -rf ./update/$tanggal
mkdir -p ./update/$tanggal
mkdir -p ./logs

while read line; do
    echo "$line" | awk '{sub(/:.*/,x)}1'
done < $filename
#/bin/bash
filename='copy.md'
n=1
tanggal=$(日期+%d-%m-%Y)
tanggalWaktu=$(日期+%d-%m-%Y%H:%m:%S)
rm-rf./update/$tanggal
mkdir-p./update/$tanggal
mkdir-p./logs
读行时;做
回音“$line”| awk'{sub(/:.*/,x)}1'
完成<$filename

如果一行包含多个列,则输出第一列:

awk 'NF>1{print $1}'
awk
使用空格和制表符作为默认字段分隔符


请参阅:

假设空白字符串表示一个或多个空格:

cut -f 1 -d ' ' "$filename"

请在您的问题中以代码的形式添加您的努力,这是非常值得鼓励的,谢谢。这里有一个小的更正:awk使用空格和换行符作为默认字段分隔符。空格和换行符的定义方式取决于您的区域设置,但通常包括空格、制表符和换行符。